2011-08-08 7 views
0

UserモデルとLocationモデルの私のアプリケーションにはPostというモデルがあります。 UserLocationモデルの両方ともPosthas_manyの関係を使用しています。Rails:ユーザーと場所との関連付け

私のPostコントローラの作成アクションでは、Postを現在ログインしているユーザー(私にはDeviseからcurrent_userとして利用可能)と自動的に関連付ける必要があります。

また、同じaddressフィールド(フォームを通じて入力するフィールド)が存在する場合は、既存のLocationと関連付ける必要があります。新しいフィールドを作成し、それ以外のフィールドに関連付ける必要があります。

私のPostモデルはuser_idフィールドと同様にlocation_idフィールドを持っています。

ユーザーが新しい投稿を作成したときに、作成アクションで2つの関連付けを自動的に達成するにはどうすればよいですか?

+0

問題は? – Dogbert

+0

@Dogbert更新。申し訳ありませんが明らかでない場合。 –

+0

これは、マニュアルを読むことで簡単に答えられる質問です。初心者はhttp://guides.rubyonrails.org/association_basics.htmlを試してみてください。あなた自身でそれを解決する努力をしていないように見えるので、これにより良い答えを得ることはまずありません。 – jergason

答えて

1

2つのステートメントを使用する必要があります。

@post = current_user.posts.build(params[:post]) 
@post.location_id = params[:location_id] # change this to whatever you're passing. 
@post.save 
+0

ああ、私は 'location_id'フィールドを設定することで自動的にそれらを結びつけてくれませんでした。ありがとうございました。 –

+0

あなたの投稿モデルが場所と関連づけられている場合(投稿には1つの場所があります)、最初に場所を検索する方がよいでしょう。@ post.location = Location.find(params [:location_id))。 –

関連する問題