проверить метод "squeel", новый в 0.9.0.Он был добавлен для поддержки именно такого рода вещей.Это просто дает вам простой способ написать блок Squeel DSL без фактического присоединения его к «где», «объединению» и т. Д.
Вы также можете рассмотреть возможность инкапсуляции этой логики в сифере для вашегомодель.
class User < ActiveRecord::Base
sifter :my_sifter do |growth_range, min_rating, email_start|
growth.in(growth_range) & rating.gt(min_rating) & email.matches("#{email_start}%")
end
end
User.where{sift :my_sifter, 0..200, 50, 'vany'}