0

我有关系:Post一对多PicturesPictures之前已通过 AJAX 创建,并且它们的 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}
4

1 回答 1

1

如果我对您的理解正确,您希望获取已上传的图片记录并将它们与刚刚保存的帖子相关联。假设params[:picture_ids]在您解码 JSON 后是一个数组,您应该能够在 Picture 上进行全部更新以实现此目的。保存帖子后立即尝试:

Picture.update_all(
  { :post_id => @post.id },
  :conditions => { :id => params[:picture_ids] }
)
于 2012-09-23T14:35:54.820 回答