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
2 番目のコード スニペットで間違っていると思われる行をマークしました。アップロード方法は railsguide から貼り付けただけで、params 配列を [:customer] に調整しました。
ファイルをアップロードすると、次のエラーが発生します。
undefined method `[]' for nil:NilClass
これは、上でマークした行を指します。
この他の質問も見つけましたが、それがどのように役立つかまだわかりません。
私は何を間違っていますか?フォームが間違っているか、コントローラーのメソッドが間違っていますか? どんな助けでも感謝します。