1

我正在使用导轨 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列合并/分配给每个评论记录?

4

0 回答 0