rails如何在使用parent更新时合并嵌套属性中的用户ID

时间:2013-01-05 12:54:40

标签: ruby-on-rails-3 has-many-through update-attributes

我正在使用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_idparams[:post][:comments_attributes]的每个新嵌套评论属性attr_accessible列,user_id将忽略这些属性。

有没有最佳方法将{{1}}列合并/分配给每条评论记录?

0 个答案:

没有答案