多くの業界とレベルを持つ会社モデルがあります。
レベルに基づいて産業の数を取得するヘルパー関数があります。
「基本」レベルの会社モデル インスタンスは、最初の 2 つの業界でのみ検索可能である必要がありますが、それ以上のものが含まれている可能性がありますが、最初の 2 つの業界の結果にのみ表示されるようにしたいとします。
私が持っているモデルでは
searchable do
integer :industry_ids, multiple: true
num_of_industries ヘルパー関数によって決定されるレベルに基づいて、特定の数の業界のみを検索できるように、モデル インスタンスの検索を制限するにはどうすればよいですか。
何かのようなもの
searchable do
integer :industry_ids[num_of_industries], multiple: true
編集:私はそれを理解しました
LIMITED_INDUSTRIES_BASED_ON_LEVEL = {
'Free' => 1,
'Silver' => 3,
'Gold' => 5,
'Platinum' => 5
}
def industries_limited
self.industries.limit(LIMITED_INDUSTRIES_BASED_ON_LEVEL[self.level])
end
searchable do
integer :industry_ids, multiple: true do
self.industries_limited.map(&:id)
end
end