【发布时间】:2012-10-17 18:23:04
【问题描述】:
深入研究 Rails 的上传功能并实际关注 this railsguide。
我对上传表单使用以下代码:
<%= form_tag({ action: :upload }, multipart: true) do %>
<%= file_field_tag :picture %>
<%= submit_tag %>
<% end %>
这是我的上传方法:
def upload
uploaded_io = params[:customer][:picture] #erroneous line!!
File.open(Rails.root.join('public', 'uploads', uploaded_io.original_filename), 'w') do |file|
file.write(uploaded_io.read)
end
flash[:notice] = "File uploaded successfully!"
redirect_to root_path
end
我在第二个代码 sn-p 中标记了我认为错误的行。上传方法只是从 railsguide 粘贴过来的,我将 params 数组调整为 [:customer]。
上传文件时出现此错误:
undefined method `[]' for nil:NilClass
指的是我上面标记的那一行。
我还发现了 this 其他问题,但我还没有弄清楚这对我有什么帮助。
我做错了什么?是我的表格错误还是我的控制器方法错误?任何帮助表示赞赏。
【问题讨论】:
-
向我们展示您的
params在您的控制器第一行params.inspect上执行此操作并与我们分享params的内容
标签: ruby-on-rails ruby forms upload controller