2
레일로 작업하고 있는데 arel로하고 싶은 SQL 쿼리가 있습니다.Arel로 쿼리하기
"SELECT `people`.* FROM `peoples` WHERE `peoples`.`home_id` = 289 AND (`people`.`created_at` BETWEEN '2013-03-12' AND '2013-03-15' AND (`people`.`first_name` LIKE '%jane%' OR `people`.`email` LIKE '%jane%'))"
지금, 나는 arel와 쿼리를 해결 한하지만 난 "(% 번호 {검색} %") "동일한 검색 변수와 일치해야하는 속성의 일치"를 반복하지 않도록하고 싶습니다. 같은
a.where(a.arel_table[:created_at].in(date_range).and(a.arel_table[:first_name].matches("%#{search}%").or(a.arel_table[:email].matches("%#{search}%"))))
뭔가 :
a.where(a.arel_table[:created_at].in(date_range).and([:email, :first_name].each {|attr| or.(a.arel_table[:attr].matches("%#{search}%"))))
하지만이 작동하지 않습니다.