我的问题是关于使用s3_direct_upload gem。我试图同时在视图(s3_uploader_form方法)上放置两个上传按钮。无论我如何构建它,只有第一个实例工作,第二个将更改按钮后面的文本(从'没有选择文件'到文件的名称),但不会导致任何上传尝试。我知道它不是控制器,因为单独调用工作。只有当两者同时在视图上时才会这样。
以下是相关的观看代码
<table>
<tr> <th>File</th> <th>license</th></tr>
<tr>
<td>
<%= s3_uploader_form callback_url: company_program_version_license_index_path(@company, @program, @license),
id: "s3_uploader",
callback_param: "programfile[direct_upload_url]",
expiration: 24.hours.from_now.utc.iso8601,
max_file_size: 2000.megabytes do %>
<%= file_field_tag :file, multiple: false %>
<% end %>
</td>
<td>
<%= s3_uploader_form callback_url: company_program_version_license_index_path(@company, @program, @license),
id: "s3_uploader",
callback_param: "license[direct_upload_url]",
expiration: 24.hours.from_now.utc.iso8601,
max_file_size: 2000.megabytes do %>
<%= file_field_tag :file, multiple: false %>
<% end %>
</td>
</tr>
</table>
我已经颠倒了订单并从表中移除了调用,但始终只有视图中遇到的第一个调用才有效。第二个只会更改按钮后面的文本而没有其他效果。
答案 0 :(得分:0)
来自项目的README:
如果有很多“s3_uploader_form”字样,则应将唯一身份ID添加到file_field_tag中。在页面[sic]
另外,在HTML中,没有两个元素应该共享相同的id
值。