これはあなたがPost
を作成するたびに起こるべきものであるならば、あなたはそれを達成するために、アクティブコールバックを使用する必要がありますが:
class Post < ActiveRecord::Base
after_create do |post|
# create your association using post.id
end
end
か、あなたもそのようにそれを書き込むことができます。
class Post < ActiveRecord::Base
after_create :after_create_post
def after_create_post
# create your association using self.id
end
end
を
それ以外の場合は、これがコントローラアクションに固有のものであれば、次のような簡単な操作を行う必要があります。
class PostsController < ApplicationController
def create
@post = current_user.posts.build(params[:post])
# then use the @post.id to build your association. something like
@post.associations.build(:prop1 => 'value1', :prop2 => 'value2')
end
end
希望すると便利です!
こんにちは、私はあなたがそうするべきではないと思います。 POSTは、ブラウザが実際に何かをサーバーにPOSTする、サーバーに対するブラウザのアクションを表すものとします。あなたが望むのは、最初のフォームを送信した後のチェーンアクションです。もっと正確な答えを得るためにもう少し文脈を与えることができますか? –
お返事ありがとうございます。 @postという言葉は混乱を招いたと思います。私はそれによって "ポスト"というモデルを意味しました。だから私は "投稿"モデルで新しいエントリを作成するとき、私は後で関連付けモデルのための新しいレコードで新しく作成されたpost_idフィールドを使用する必要があります。これが明確になることを願っています。私がこれをどのように達成できるか教えてください。 – rgoraya
実際に、「私はすぐに(ボンネットの下で)@associationsのフォームを提出したい」というメッセージは、「投稿」トラックに私を送りました。フォームを送信すると、通常は**私たちが話しているPOST約。 –