0

私は関係を持っています: one Postwith many Pictures. Pictures以前に AJAX 経由で作成され、それらの ID は 1 つの投稿ビュー ページの非表示フィールドに保存されます。フォームを送信した後、自分のデータのみを保存し、ネストされたモデルから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

私があなたを正しく理解しているなら、あなたはすでにアップロードされた写真レコードを取り、それらを保存されたばかりの投稿に関連付けたいと思うでしょう。JSONをデコードした後の配列であると仮定するparams[:picture_ids]と、これを実現するために、Pictureですべて更新を実行できるはずです。投稿を保存した直後にこれを試してください。

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