Rails 文件上传问题
问题描述:
<%= form_tag(:action =>'uploadFile', :multipart => true)%>
<p><label for="upload_file">选择上传文件</label>
<%= file_field("file", "filedata")%>
<%= submit_tag '提交' %></p>
</form>
uploadFile 方法怎么都上传不了, 还出现
undefined method `read' for "szy.txt":String 错误
解决办法:
<%= form_tag({:action =>'uploadFile'}, :multipart => true)%>
问题原因
for_tag(url_for_options={}, options={}, *parameters_for_url, &block);
options 可以指定 mutipart属性。
:action =>'uploadFile', :multipart => true 会被当成一个最右参数,就都传给了 url_for_opitons;这样multipart参数就被丢弃掉了。
{:action =>'uploadFile'}, :multipart => true 是两个参数,这样 :mutipart=>true就传给第二个形参 options。