【发布时间】:2011-10-09 01:58:51
【问题描述】:
谁能告诉我为什么这段代码不起作用:
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)}
完美运行?
如何使用第一个示例这样的条件构建适当的范围(当看似不可能使用哈希条件时)?
UPD 安全的解决方案被证明是微不足道的:
scope :myscope, lambda{|field, mode| {:select => field, :conditions => {:moderated => mode}, :order => field}}
..但是在未来的 RoR 版本中,这种设置范围条件的方式不会被弃用(不确定)吗?
【问题讨论】:
标签: ruby-on-rails-3 activerecord