2014-10-25 6 views
1

У меня есть две модели с HABTM соотношением:В поисках простого синтаксиса HABTM области видимости в rails4

class Contact < ActiveRecord::Base 
    has_and_belongs_to_many :contact_types 
end 

class ContactTypes < ActiveRecord::Base 
    has_and_belongs_to_many :contacts 
end 

и contact_types_contacts таблицу, которая связывает их.

Я пытаюсь создать область, которая выбирает контакты, связанные с определенным типом ContactType. Я пробовал несколько синтаксисов, но никто не работал.

Например

scope :suppliers, -> { where(contact_types: 1) } 

не вызывает

SQLite3 :: SQLException: нет такой колонки: contacts.contact_type_id: ВЫБРАТЬ "контакты" * FROM "контакты", где "контакты".. "contact_type_id" = 1 ORDER BY contacts.name asc LIMIT 20 OFFSET 0

I Есть ли кто-нибудь, кто предложит мне какую-нибудь идею?

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

ответ

0

Вы забыли добавить соединение и указать столбец db.

scope :suppliers, -> { joins(:contact_types).where(contact_types: { id: 1}) } 
+0

Это работает! Спасибо, Александр. – Nico

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