Может кто-нибудь сказать, почему этот код не будет работать:
scope :scope_a, lambda {|x, y| select('DISTINCT ?', x).order('? ASC', y)}
(говорит ArgumentError: неверное количество аргументов (2 для 1)), тогда как это
scope :scope_b, lambda {|x, y| where(:cond1 => x).where(:cond2 => y)}
отлично работает?
Как построить правильную область видимости с условиями, подобными 1-му примеру (когда, казалось бы, невозможно использовать хеш-условия)?
UPD Безопасное решение оказалосьтривиально:
scope :myscope, lambda{|field, mode| {:select => field, :conditions => {:moderated => mode}, :order => field}}
.. но разве этот способ установки условий области не устареет (не уверен) в будущих версиях RoR?