在Rails表单中的file_field中使用Dropzone.js

时间:2017-02-16 04:11:29

标签: ruby-on-rails dropzone.js

我正在尝试使用Dropzone.js在我的Rails应用程序中上传文件。 似乎如果我使用标准设置,整个表单将成为图像上载字段。但是,我的表单也包含其他字段。我只想在file_field区域使用Dropzone.js。

我使用的步骤是:

的Gemfile

gem 'rails-assets-dropzonejs', source: 'https://rails-assets.org'

的application.js

//= require dropzonejs

application.css

*= require dropzonejs

_form.html.erb

<%= form_for @activity, html: {class: 'ui form'} do |f| %>
  <!-- Fields like this one don't need to be dropzone fields -->
  <div class="field">
    <%= f.label :name %>
    <%= f.text_field :name %>
  </div>

  <!-- The following field does -->
  <div class="field">
    <%= f.label :gallery_images %>
    <%= f.file_field :gallery_images, multiple: true, class: 'drop' %>
    <%= f.hidden_field :gallery_images_cache %>
  </div>
<% end %>

activities.coffee

$ ->
  $('.drop').dropzone({ url: "/activities/post" });

正如您所看到的,我正在尝试将Dropzone绑定到我已附加到file_field的'drop'类。但是,这似乎无法正常工作,我在控制台中看不到任何错误。

任何人都知道如何让Dropzone.js为Rails表单中的file_field工作?或者我可以只将它绑定到整个表单吗?

非常感谢任何帮助!谢谢!

1 个答案:

答案 0 :(得分:0)

您需要允许:file参数。很可能会有代码中的代码

private 

  def activities_params
      params.permit(:name, ...other_params)
  end

:file添加到permit方法

私人

  def activities_params
      params.permit(...other_params, :file)
  end