2016-10-21 20 views
0

私はCompanyInsuredObjectという2つのモデルを持っています。 Company has_many InsuredObjectsと逆のbelongs_toです。現在、私は以下に示すように検索入力を含むすべてのオブジェクトを返しますInsuredObjectための機能の検索(複数可)を持っている:Rails - 関連の値に基づいてオブジェクトを検索する

# /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 

Companyis_active属性を持っています。私は同じことを検索する方法を考えようとしていますが、InsuredObjectCompanyis_activeのattrutbuteはtrueです)を返すだけです。何かご意見は?

+0

私は考えている内部の参加を見ている –

答えて

0

アクティブ企業からInsuredObjectのすべてのエントリを取得:joins(:company)

InsuredObject.joins(:company).where(companies: {is_active: true}) 

:companyは、アソシエーションの名前です(InsuredObjectであなたはbelongs_to :companyを持っている必要があります)

where(companies: ...では、:companiesは用テーブル名ですモデルCompany

+1

優秀!私はとても近かった。私は "会社"の代わりに "会社"を使っていました。ご協力ありがとうございました! – AHinson

+0

もう1つ。これらの結果をどのように照会するのですか?私は結果に 'どこに'を使用しており、エラーが発生します。 – AHinson

+0

申し訳ありませんが、どのエラーが表示されますか? –

関連する問題