Проблема Ассоциации - PullRequest
       11

Проблема Ассоциации

0 голосов
/ 21 января 2010

У меня проблема с ассоциацией:

Батальон : has_many солдат

Солдаты : has_many праймериз

Мне нужно сделать это @bseniorleads = (@ user.battalion.soldiers.find (: все,: условия => ["seniorleader =?", "Да"])) затем @seniorspouse = (@ bseniorleads.primaries.find (: все,: условия => ["отношения =?", "супруга"]

Это дает мне неопределенный метод для праймериз, я полагаю, потому что bseniorleads - это массив?

По сути, я не знаю, как это сделать правильно, но мне нужно иметь возможность запросить группу из одной модели, которая удовлетворяет условию, а затем взять этот результат и найти людей из другой модели, которая принадлежит им. Есть идеи?

Заранее спасибо.

1 Ответ

0 голосов
/ 21 января 2010

Вы должны быть в состоянии сделать что-то подобное (при условии, что вам нужна только переменная экземпляра @bseniorleads во втором запросе):

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

Я еще не проверял это, но я думаю, что это должно сблизить вас.

Возможно, вы захотите проверить эти два руководства по рельсам, которые, безусловно, помогли мне лучше понять ассоциации ActiveRecord и запросы:

...