我正在使用导轨 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
,用于在Post 中形成nested_attributes,form_for
并按预期形成参数。
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
列合并/分配给每个评论记录?