我有以下设置:
class Post < ApplicationRecord
has_many :comments, inverse_of: :post, dependent: :destroy
accepts_nested_attributes_for :comments
end
class Comment < ApplicationRecord
belongs_to :post
end
如果我打电话post.update_attributes(post_params)
以下内容在哪里post_params
:
post_params = {
"content"=>"Post something",
"comments_attributes"=>{
"0"=>{
"content"=>"comment on something"
}
}
}
评论新评论被创建并与帖子相关联。
有没有办法让我们在帖子上更新属性并仍然更新与帖子相关的特定评论?
也许是这样的:
post_params = {
"content"=>"Post something",
"comments_attributes"=>{
"0"=>{
"id"=>"1", #if the id exist update that comment, if not then add a new comment.
"content"=>"comment on something"
}
}
}
所以我可以打电话post.update_attributes(post_params)
并利用accepts_nested_attributes_for
on 更新。
如果这是不可能的,那么通过更新相关评论来更新帖子的最佳方法是什么?
任何帮助将不胜感激。