私はこれに数日間取り組んでおり、あちこちを検索して、何とか私の目的に近づけました。
アプリケーションで複数の画像をアップロードしようとしています。
ムービー.rb
class Movie < ActiveRecord::Base
attr_accessible :title, :notes, :link, :screenshots_attributes
has_many :comments, :as => :commentable
has_many :screenshots
accepts_nested_attributes_for :screenshots, allow_destroy: true
belongs_to :cast
end
Screentshot.rb
class Screenshot < ActiveRecord::Base
attr_accessible :image, :movie_id
belongs_to :movie
mount_uploader :image, ImageUploader
end
Movie_controller.rb
def create
@movie = Movie.new(params[:movie])
@cast = Cast.find(params[:cast_id])
if @release.save
redirect_to cast_movie_path(params[:cast_id], @movie), notice: "#{t 'movie.created'}"
else
render action: "new"
end
end
_form.html.rb (動画)
<%= form_for [@cast, @movie], :id => 'fileupload' do |f| %>
<%= f.text_field :movie %></div><%= t 'movie.title' %><br />
<%= f.fields_for :screenshots do |s| %>
<%= s.file_field :image, multiple: true %><%= t 'movie.screenshots' %><br />
<% end %>
<%= f.text_area :notes %></div><%= t 'movie.notes' %></div><br />
<div class="actions">
<%= f.submit "#{ t 'general.submit'}", :class => "btn"%>
</div>
<% end %>
フォームを送信すると、1 つの画像のみがアップロードされますが、「params.to_yaml を発生させる」(デバッグ目的で) と、NoMethodError が発生します。
undefined method `name' for nil:NilClass
およびリクエストパラメータhttp://pastebin.com/4iZvtnED