我有两个具有habtm关系的模型:
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“联系人”WHERE “contacts”。“contact_type_id”= 1 ORDER BY contacts.name asc LIMIT 20 OFFSET 0
有没有人建议我这个想法?
提前致谢。
答案 0 :(得分:0)
您忘记添加连接并指定db列。
scope :suppliers, -> { joins(:contact_types).where(contact_types: { id: 1}) }