我有关系:一个Post
有很多Pictures
。之前已通过AJAX创建了Pictures
,并且他们的ID存储在一个帖子视图页面上的隐藏字段中。提交表单后,post_controller
仅保存自己的数据,并从嵌套模型中跳过picture_ids
。如何关联它?
def create
p_attr = params[:post]
p_attr[:picture_ids] = ActiveSupport::JSON.decode(params[:post][:picture_ids])
puts p_attr
@post = Post.new(p_attr)
puts @post.to_json
@post.save
end
收到帖子:
{"title"=>"test", "description"=>"test", "picture_ids"=>["505eec681e7bf2b8150001a5","505eea991e7bf2b8150001a1","505ee7761e7bf2b81500018d"]}
创建帖子:
{"_id":"505eeed01e7bf2b8150001b1","created_at":null,"description":"test","title":"test","updated_at":null}
答案 0 :(得分:1)
如果我正确理解你,你想拍摄已经上传的图片记录,并将它们与刚刚保存的帖子相关联。假设在解码JSON之后params[:picture_ids]
是一个数组,您应该可以在Picture上进行更新以实现此目的。保存帖子后立即尝试:
Picture.update_all(
{ :post_id => @post.id },
:conditions => { :id => params[:picture_ids] }
)