1

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

fields_forposts_controller.rb では、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