1
모델을 조인 fruit_type, F1, F2 필드를 검색하여 모든 과일을 얻을 수있는 방법레일은 두 개의 테이블
Fruit: fields - "fruit_type"
has_many: apples
has_many :bananas
Apple fields: f1, f2, fruit_id, some other fields
belongs_to: fruit
Banana: f1, f2, fruit_id, some other fields related to banana
belongs_to :fruit
. 우리는 3 가지 입력을 가지고 있습니다 : fruit_type, f1, f2 그래서 하나의 필드 (예 : f1) 만 입력하면 f1 필드 만 검색됩니다. fruit_type, f1, f2 입력을 입력하면 f1, f2 필드가 모두 검색되고 마지막으로 과일이 반환됩니다.
말할 수 있습니다 F1이나 F2 만 입력 작업, 다음 아래 입력 중 하나
fruit_type, F1은, F2 입력도 입력 한 경우scope = Fruit.joins("left join apples on apples.fruit_id=fruits.id left join bananas on bananas.id=fruits.id where (apples.f1 like '#{f1_input_val}%' or bananas.f1 like '#{f1_input_val}%')")
, 무슨 쿼리? 작동하지 않는 아래 :
scope = Fruit.all #if no queries
scope = scope.where("fruit_type like ?", "#{fruit_type_input}%") if fruit_type_input.present?
scope = scope.joins("left join apples on apples.fruit_id=fruits.id left join bananas on bananas.id=fruits.id where (apples.f1 like '#{f1_input_val}%' or bananas.f1 like '#{f1_input_val}%')") if f1_input_val.present?
scope = scope.joins("left join apples on apples.fruit_id=fruits.id left join bananas on bananas.id=fruits.id where (apples.f2 like '#{f2_input_val}%' or bananas.f2 like '#{f2_input_val}%')") if f2_input_val.present?
모델 코드를 게시하십시오. '과일', '사과', '바나나'와는 어떤 관계가 있습니까? –
완료 .................. – user2349115