深入研究 Rails 的上传功能并实际遵循此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
我在第二个代码片段中标记了我认为错误的行。上传方法只是从 railsguide 粘贴的,我将 params 数组调整为 [:customer]。
上传文件时出现此错误:
undefined method `[]' for nil:NilClass
它指的是我上面标记的行。
我还发现了另一个问题,但我还没有弄清楚这对我有什么帮助。
我究竟做错了什么?是我的表格错误还是我的控制器方法错误?任何帮助表示赞赏。