【发布时间】:2015-05-18 12:19:34
【问题描述】:
我有一个 Rails 应用程序,我希望在不刷新页面的情况下上传文档。我遵循了 jQuery fileupload Railscast 并得到了这个功能。但是,我上传文件的页面有很多要上传的表格,上传的文件总是放在最上面的表格(有 7 个要上传的表格,我通过表格 nr 6 上传图片,但文件是通过第一个表格上传的)。
带有表单的页面是 Memberships#index:
...
<div class="tab-pane active" id="all_memberships">
<%= render 'memberships_table', memberships: @memberships, no_content: I18n.t('tables.memberships.all') %>
</div>
...
<script id="template-upload" type="text/x-tmpl">
<div class="upload">
<div class="progress"><div class="bar" style="width: 0%;"></div></div>
</div>
</script>
_memberships.html.erb:
...
<%= render 'shared/candidate_req_status', membership: membership %>
...
_candidate_req_status.html.erb:
...
<%= render 'shared/candidate_doc_form', req: req %>
...
最后是 _candidate_doc_form.html.erb:
<%= simple_form_for req do |f| %>
<div class="candidate-doc-form">
<%= f.file_field :candidate_doc, class: 'inline filestyle' %>
</div>
<% end %>
我从咖啡文件启用 fileuploa:
jQuery ->
$('.edit_candidate_requirement_status').each ->
$(this).fileupload
dataType: "script"
add: (e, data) ->
data.context = $(tmpl("template-upload", data.files[0]))
$('#' + e.target.id).append(data.context)
data.submit()
progress: (e, data) ->
if data.context
progress = parseInt(data.loaded / data.total * 100, 10)
data.context.find('.bar').css('width', progress + '%')
知道如何使用此设置正确上传文件吗?
【问题讨论】:
标签: jquery ruby-on-rails file-upload