2011-06-17 9 views
3

テーブルに新しいエントリを作成し、結合されたテーブルに関連する関係を自動的に作成する方法がわかりません。ここでRails 3結合されたテーブルの関連付けを自動的に作成する

は私のモデルです。今私のユーザモデルがそのように私はCURRENT_USERヘルパーを使用してきた工夫のためにも使用されている

。私は、ユーザーに関連付けられている新しい建物を作成し、結合テーブルを更新する

current_user.buildings.build 

を使用すると考えていた私は、そこからそう

current_user.buildings 

を使用するすべての建物を取得するに

。ただし、これはビルディングテーブルにビルディングを追加するだけで、user_buildingsテーブルにアソシエーションを作成しません。

私はhttp://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.htmlでドキュメントを読んでいましたが、私は行きたい方向を理解できていないようです。

ありがとうございます!

+1

私にはRailsのバグのようです。 '.build'と' .save'は正しい関係を構築するのではなく、 'user.buildings.create'は正しい関係を構築します。 – Dogbert

+2

'current_user.buildings.build'を実行すると、次のように保存する必要があります:' current_user.save' – apneadiving

+0

@apneadiving:これは、アソシエーションに対して:autosaveオプションを設定した場合にのみ機能します(@nicholas ) – moritz

答えて

1

現在のユーザーの建物のコレクションを更新する必要があり、レールがあなたのために結合テーブルの更新を処理します。

current_user.buildings << Building.new(:some_building_attributes => :some_value) 
current_user.save 
関連する問題