2010-09-20 2 views
0

это следующий предыдущий вопрос, который я задал. У меня возникли проблемы с получением запроса на работу, который имеет множество условий для вложенных моделей.activerecord вложенные условия

user has_one avatar 
user has_one profile 
avatar belongs_to user 
profile belongs_to user 

и я фактически в состоянии получить эту работу ...

Avatar.find(:all, :include => {:user => :profile}, :conditions => {:users => {:profiles => {:description => 'foo'}}}) 

однако я хочу, чтобы вернуться аватар, если profile.description является NOT NULL.

Avatar.find(:all, :include => {:user => :profile}, :conditions => {:users => {:profiles => "profiles.description IS NOT NULL"}}) 

поэтому, когда я изменить запрос следовать синтаксис SQL, а не синтаксис railsesque, я получаю сообщение об ошибке «Нет такой столбец не user.profiles»

он не кажется, важно, что заявление я использовать для «profiles.description IS NOT NULL», ошибка такая же. это должно быть что-то еще с этой структурой.

ответ

1

Попробуйте это:

Avatar.all(:include => {:user => :profile}, 
    :conditions => ["profiles.description IS NOT NULL"]) 

Вы должны использовать условия массив для таких запросов.

Смежные вопросы