`

基于ruby的gem remotipart的异步上传文件

    博客分类:
  • RUBY
 
阅读更多
针对某一对象保存实例化之前,异步上传图片保存。
gem 'remotipart', '~> 1.2'


//= require jquery.remotipart



<div class="ui grid">
  <div class="left floated fourteen wide column">
    <h2><a href="javascript:history.back()"><i class="blue reply icon"></i></a>添加知识</h2>
  </div>
</div>
<%= render 'form', url: admin_knowledge_libraries_path, meth: :post %>
<% content_for :scripts do %>
	<script>	
	    function add_document(){
	   	 var draft_img = $("#draft_img").val();
	   	 if (draft_img != ""){
	       $("#draft_img_message").text("")	;
	       $("#image_preview_form").submit();
	     }else{
	       $("#draft_img_message").text("请选择上传文件。")	;
	     }
	    }
	</script>
<% end %>


  def add_document
    new_attachment = ::Attachment.create({attachment_entity_type: ::Knowledge::Library.name, path: params[:draft_img], created_by: CreatedBy.format_created_by(current_employee)})
    had_attachement_ids = params[:had_attachement_ids].present? ? params[:had_attachement_ids].split(",") : []
    @had_attachement_ids = had_attachement_ids << new_attachment.id

    @new_problem_message_images = ::Attachment.where(id:@had_attachement_ids)
    @attachement_ids = @had_attachement_ids.join(",")

    respond_to do |format|
      format.js
    end
  end


<table class="ui selectable striped celled table">
  <tbody>
	  <tr>
	    <td colspan="10">
		    <div id="image_preview"><%= render partial: "message_image_list", locals: { message_image_list: @new_problem_message_images} %></div>
	        <br/>
			<div class="row-fluid">
			  <%= form_for @library, :method=>"post", :remote=>true , :url=>"/admin/knowledge/libraries/add_document", html: { id: 'image_preview_form',:multipart => true,autocomplete: "off"  } do |f| %>
				文档附件:
				<%= file_field_tag "draft_img", id: 'draft_img' %>
				<%= hidden_field_tag :had_attachement_ids,@attachement_ids %>
			  <% end %>
			  <span id="draft_img_message" style="color: red"></span>
			</div>
	    </td>	
        </tr>
  </tbody>
</table>        


<%= simple_form_for @library, url: url, method: meth do |f| %>
	<div class="ui blue segment">
	    <div class="four fields">
	       <%= f.input :title %>
	    </div>
	    <div class="four fields">
	        <div class="field">
	          <label>发布时间</label>
	          <div class="ui calendar J_calendar_datetime">
	            <div class="ui input left icon">
	              <i class="calendar icon"></i>
	              <%= f.input_field :started_at, as: :string %>
	            </div>
	          </div>
	        </div>
	    </div>
	    <div class="four fields">
	      <%= f.input :source %>
	      <%= f.input :source_url %>
	    </div>
            <%= hidden_field_tag :commit_attachement_ids,@attachement_ids %>
	</div>
	<div class="footer_btn">
		<%= f.submit '提交', class: 'ui primary mini button' %>
	</div>
<% end %>


  $("#image_preview").html('<%= j(render partial: "message_image_list", locals: { message_image_list: @new_problem_message_images} ) %>');
  $("#commit_attachement_ids").val('<%=@attachement_ids%>')
  $("#had_attachement_ids").val('<%=@attachement_ids%>')


   <% if message_image_list %>
   <table>
   <% message_image_list.each_with_index do |att,i| %>
        <% if i == 0 %>
          <tr>
        <% elsif (i >= 10 && i%10 == 0) %>
          </tr><tr>
        <% end %>
          <td>
             <a href="<%= att.path %>" target="_blank">
             <%if att&.content_type&.include?("image")%>
               <%= image_tag att.path, width: '100px', heigh: '50px', title: att.name,style:"margin:5px;" %>
             <% else%>
               <div class="column"><i class="file icon"></i><%= att.name %></div>
             <% end %>
             </a>
          </td>
   <% end %>
   </tr>
  </table> 
 <% end %>
分享到:
评论

相关推荐

    ruby离线gem文件

    ruby资源文件,ruby rdoc.gem文件,离线ruby文件包

    ruby gem 命令参考(狂刀整理)

    Ruby Gem 是 Ruby 语言的软件包管理器,它允许开发者轻松地发布、安装和管理代码库,这些代码库被称为 Gems。Gems 包含了 Ruby 库、框架、工具和其他可重用的代码组件,极大地简化了开发流程。在本指南中,我们将...

    用于计算和转换测量值的简单 Ruby gem_Ruby_代码_相关文件_下载

    ruby-measurement是一个简单的 Ruby gem,用于计算和转换测量单位。 安装 将此行添加到应用程序的 Gemfile: gem 'ruby-measurement' 然后执行: $ bundle 或者自己安装: $ gem install ruby-measurement 用法 ...

    ruby gem环境

    当你运行`gem install`命令时,Ruby Gem会解析这个gemspec文件,下载所有必要的文件,并将其安装到你的系统上的特定位置。在Windows系统上,这个位置通常是`C:\Ruby193\lib\ruby\gems\1.9.1`,这个路径对应的是Ruby ...

    ruby_gem

    Ruby Gem 是 Ruby 语言的一个核心特性,它是一个用于软件包管理的系统,使得开发者能够方便地发布、安装和管理他们的代码库。这个压缩包文件"rubygems-2.4.1"显然包含了 Ruby Gems 的一个特定版本,即2.4.1版。在这...

    stock_quote, 从Google检索股票报价的ruby gem.zip

    stock_quote, 从Google检索股票报价的ruby gem stock_quote实时,股票数据和使用 Google financial API的历史定价。更新在November年 November,雅虎财务终止了对API的访问,而stock_quote在当前状态中停止了功能。 ...

    ruby离线安装所需所有的gem文件(另有安装包)

    将这些gem文件移动到你的系统GEM目录(通常在`C:\Ruby193\lib\ruby\gems\[version]\gems`下,具体取决于你的安装路径),然后打开命令行,使用以下命令安装gem: ```bash gem install [gem_file_name].gem --local ...

    为文件分段上传和存储提供后端支持的一个 Ruby Gem 目前用于 eshare 项目中

    为文件分段上传和存储提供后端支持的一个 Ruby Gem。目前用于 eshare 项目中。 引入 gem 在 Gemfile 引入: gem 'file-part-upload', :github =&gt; "mindpin/file-part-upload", :tag =&gt; "3.2.0" 基础配置 在 config...

    jumpcloud-ruby-gem:JumpCloud的Ruby Gem的源代码,Ruby Gem是用于JumpCloud系统上下文API的基于Ruby的SDK

    JumpCloud Ruby Gem是JumpCloud的第一个基于Ruby的SDK,它利用JumpCloud系统API。 它使您可以通过将服务器添加到所需的任何标签列表中来轻松设置任何服务器,设置系统名称,以及通过能够从JumpCloud中删除服务器来...

    jira-ruby, 用于 JIRA REST API的ruby gem.zip

    jira-ruby, 用于 JIRA REST API的ruby gem gem API 这里 gem 提供对 Atlassian REST API的访问。松弛加入我们的Slack 你可以在这里找到我们。示例用法require 'rubygems'require 'jira-ruby

    sepa_king, 用于创建分离XML文件的ruby gem.zip

    sepa_king, 用于创建分离XML文件的ruby gem 用于创建分离XML文件的 ruby-gem 我们喜欢建立支付应用程序 ! 因此,在开发用于的 DTAUS库之后,我们将继续进行分离。特性这里 gem 在 ISO 20022标准中实现以下两条消息...

    Ruby2.3文件和gem文件

    1. **解压源码**:使用`tar -zxvf ruby-2.3.1.tar.gz`命令解压缩文件。 2. **进入解压后的目录**:`cd ruby-2.3.1` 3. **配置编译环境**:执行`./configure`,这个脚本会检查你的系统环境并生成适合的编译参数。 4. ...

    ruby _1.9.3 _gem环境

    Gem 文件通常以`.gem`为扩展名,通过Ruby的`gem`命令行工具进行安装、更新和卸载。 二、Ruby 1.9.3 Gem 环境设置 1. 安装Ruby 1.9.3:首先,你需要在你的系统上安装Ruby 1.9.3。这可以通过Ruby Installer(对于...

    ferver:通过 HTTP 提供文件的 Ruby gem,打包为 Ruby gem

    Ferver = 文件服务器Ferver:一个简单的 Web 应用程序,用于通过打包为 Ruby gem 的 HTTP 提供文件。描述这是通过http提供文件的超级简单的 ruby​​ gem,作为基本文件服务器非常有用,可以在本地网络或网络上快速...

    darwinning, 用于遗传算法的ruby gem.zip

    darwinning, 用于遗传算法的ruby gem Darwinning 用于帮助使用遗传算法的ruby gem 。安装gem install darwinning用法使用Darwinning有两种方法。 你可以以从 Darwinning::Organism

    forecast-ruby, 用于从预测天气API中检索数据的ruby gem.zip

    forecast-ruby, 用于从预测天气API中检索数据的ruby gem forecast_ioruby 中的forecast.io API包装器。安装gem install forecast_io或者你的Gemfilegem 'forecast_io'用法确保你需要库。requir

    imgix-rb, 用于签名 imgix url的ruby gem.zip

    imgix-rb, 用于签名 imgix url的ruby gem Imgix用于签名imgix的官方 ruby gem url 。 在 2.3.0,2.2.4,2.1.8,jruby- 9.0.5.0 和 rbx-2.11 下测试。 安装将此行添加到你的应用程序的Gemfile中:gem

    sql_query, ruby gem 使用ERB从 `.sql.erb` 模板加载SQL查询.zip

    sql_query, ruby gem 使用ERB从 `.sql.erb` 模板加载SQL查询 sql使用ERB从模板加载SQL查询的ruby gem 。它使使用语法突出显示的纯SQL更加容易。让我们从SQL字符串清除你的ruby 代码。支持的扩展:.sql.erb 或者 .erb...

    lifx-gem, 一个 ruby gem,提供了轻松与LIFX灯光交互的能力.zip

    lifx-gem, 一个 ruby gem,提供了轻松与LIFX灯光交互的能力 LIFXLIFX将不再支持 LIFX gem 。 为了更好地支持开发人员,而不是为局域网协议本身发布文档,使sdk成为任何语言。 我们还发布了基于任何地方的HTTP API云...

    Ruby Selenium-1.1.14.gem

    Selenium gem ruby Selenium gem ruby Selenium gem ruby Selenium gem ruby Selenium gem ruby

Global site tag (gtag.js) - Google Analytics