我正在使用rails 3.0.9
我的模型具有has_many :through
关联,用户可以在创建新的父记录时创建新的子记录,在更新父记录时,用户可以创建/删除子记录
例如:
class Post < ActiveRecord::Base
has_many :comments_posts
has_many :comments, :through => :comments_posts
attr_accessible :title, :post_text, :comments_attributes
accepts_nested_attributes_for :comments
validates :user_id, :title, :post_text, :presence => true
end
class Comment < ActiveRecord::Base
attr_accessible :comment_text
has_many :comments_posts
has_many :posts, :through => :comments_posts
validates :comment_text, :user_id, :presence => true
end
class CommentsPost < ActiveRecord::Base
belongs_to :comment
belongs_to :post
end
在posts_controller.rb中,我还使用fields_for
保存/更新评论记录,以便在帖子的form_for
中形成nested_attributes,并按预期形成参数。
def edit
@post = Post.find(params[:id])
end
def update
@post = Post.find(params[:id])
@post.update_attributes(params[:post])
end
问题是:
此处我无法合并user_id
中params[:post][:comments_attributes]
的每个新嵌套评论属性attr_accessible
列,user_id
将忽略这些属性。
有没有最佳方法将{{1}}列合并/分配给每条评论记录?