У меня такие ассоциации:: где с ассоциациями
class User < ActiveRecord::Base
has_one :position
end
Class Position < ActiveRecord::Base
belongs_to :user
end
И я хочу, чтобы пользователи с позиций. Я попытался установить
User.where(:position != nil)
но это не работает, потому что в таблице пользователей нет position_id fileld.
Как я могу получить пользователей с позициями?
Я нашел ответ, объем должен выглядеть «рамки: has_position, лямбда { присоединяется (: положение). где ("position.user_id IS NOT?", Nil) } ' – Sandvich
Кстати, ': position! = Nil' никогда не будет делать то, что вы хотите в Ruby, потому что это выражение просто оценивается как true, потому что символ" position " не равно рубину «ноль». Ваш код был эквивалентен 'Users.where (true)'. –
@DavidGrayson хорошее уведомление, я также прочитал его в Rails 3-way book, и ответ на вопрос был там тоже – Sandvich