thu*_*rmc 3 ruby ruby-on-rails
我试图提供一个表单字段作为rails网站上的文件输入.我的表单设置如下
<%= form_tag({:action => 'submit_bulk_adjustment',:id => 'uploadForm', :multipart => true}, {:method => :post}) %>
<%= file_field_tag :file, class: "file-selector" %> ></td>
<%= submit_tag "Submit" %>
Run Code Online (Sandbox Code Playgroud)
该领域还有一些其他形式,但可能不相关.我试图在方法中使用表单字段中的文件(如下所示),我得到错误"未定义的方法`tempfile'为"0033982687_1406831016_BulkTest.csv":字符串".我在这做错了什么?我看到几乎相同的代码在另一个网站上工作.
post = params[:file]
if(post == nil)
raise NoFilenameEnteredError
end
post_path = post.tempfile.to_path.to_s
Run Code Online (Sandbox Code Playgroud)
:multipart => true应该是第二个选项哈希的一部分,而不是第一个哈希(第一个只是为了URL - 我假设当你提交这个表单时,你实际上在地址栏中看到"&multipart = true"?).另外,正如@Vasseurth所提到的,您需要将表单元素放在连接到表单的块中:
<%= form_tag({:action => 'submit_bulk_adjustment',:id => 'uploadForm'}, {:multipart => true, :method => :post}) do %>
<%= file_field_tag :file, class: "file-selector" %>
<%= submit_tag "Submit" %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
此外,默认方法form_tag是POST,因此无需指定.
| 归档时间: |
|
| 查看次数: |
861 次 |
| 最近记录: |