我有两个模型Company
和InsuredObject
。 Company
has_many InsuredObjects
和反向belongs_to
。目前,我有一个功能正常的搜索InsuredObject
(s),它返回包含搜索输入的所有对象,如下所示:
# /models/insured_objects.rb
def self.search(search)
query = "%#{search}%"
if search
where("object LIKE ? OR insurance_type LIKE ? OR class_code LIKE ? OR information LIKE ?",
query, query, query, query)
end
end
和:
# /controllers/insured_objects_controller.rb
def index
@insured_objects = InsuredObject.search(params[:search])
end
每个Company
都有is_active
个属性。我正在尝试一种方法来搜索相同的内容,但只返回InsuredObject
Company
is_active
attrutbute true
的{{1}}。有什么想法吗?
答案 0 :(得分:0)
从活跃公司获取InsuredObject
的所有条目:
InsuredObject.joins(:company).where(companies: {is_active: true})
在joins(:company)
中,:company
是关联名称(在InsuredObject
中您应该belongs_to :company
)
在where(companies: ...
中,:companies
是模型Company
的表名