I have a Post model which has_many :photos. While User creating a new post, user should be also able to select photos for given post.
I am using RAILS 3.2.9, nested_form, carrierwave and jquery-fileupload-rails gem and ryan bates railscasts as a guide.
All seems to be set up correctly, but problem is, when User choose a photo (a fileupload() function is triggered), new Post and new Photo record are created. Once I press "create post" another post record is again created.
Any help/idea is appreciated.
Thank you very much.
Petr
class Post < ActiveRecord::Base
has_many :photos, as: :attachable, :dependent => :destroy
accepts_nested_attributes_for :photos, :allow_destroy => true
end
class Photo < ActiveRecord::Base
belongs_to :attachable, polymorphic: true
attr_accessible :image, :description, :post_id, :attachable_id, :attachable_type
mount_uploader :image, PhotoUploader
end
# Post Controller
def create
@post = Post.new(params[:post])
@post.save
end
# _form.html.erb
<%= nested_form_for @post, :html => { :multipart => true } do |f| %>
<%= f.fields_for :photos do |photo| %>
<% if photo.object.new_record? %>
<%= photo.file_field :image, id: "fileupload" %>
<%= photo.hidden_field :id %>
<%= photo.hidden_field :attachable_id %>
<%= photo.hidden_field :attachable_type %>
<% else %>
<%= image_tag(photo.object.image.url(:thumb)) %>
<%= photo.check_box :_destroy %>
<% end %>
<% end %>
<% end %>
#application.js
$('#fileupload').fileupload();