0

アソシエーションに問題があります:

大隊:has_many兵士

兵士:has_many予備選挙

私はこれを行う必要があります@bseniorleads=(@ user.battalion.soldiers.find(:all、:conditions => ["seniorleader =?"、 "Yes"]))次に@ Seniorspouse =(@ bseniorleads.primaries.find( :all、:conditions => ["relationship =?"、 "Spouse"]

これにより、プライマリの未定義のメソッドが得られます。bseniorleadsは配列であるためだと思いますか?

基本的に、これを正しく行う方法はわかりませんが、条件を満たす1つのモデルからグループをクエリし、その結果を取得して、それらに属する別のモデルの人々を見つけることができる必要があります。何か案は?

前もって感謝します。

4

1 に答える 1

0

次のようなことができるはずです ( @bseniorleads2 番目のクエリでインスタンス変数のみが必要であると仮定します)。

@senior_spouse = @user.battalion.soldiers.find(
   :all,
   :select => 'primaries.*',
   :joins => [:primaries],
   :conditions => ["seniorleader = ? and primaries.relationship = ?", "Yes", "Spouse"]
)

まだ確認していませんが、かなり近いと思います。

以下の 2 つの Rails ガイドを参照してください。ActiveRecord の関連付けとクエリをよりよく理解するのに役立ちました。

于 2010-01-21T01:44:09.007 に答える