我有以下类在我的单元测试中工作正常,但我觉得它可以更简单。
class License < ActiveRecord::Base
scope :active, lambda {
where("active_from <= ?", Date.today).order("version_number DESC")
}
end
def current_license
return License.active.first
end
public :current_license
我尝试将.first
附加到lambda
子句中,但这会导致错误。
如何告诉scope
我只想要第一个结果,从而彻底消除方法current_license
?
答案 0 :(得分:2)
让它成为一种方法,你可以得到这个:
class License < ActiveRecord::Base
def self.current_license
return License.where("active_from <= ?", Date.today).order("version_number DESC").first
end
end
关于结果数量,请尝试添加.limit(1)
。有关详细信息,请查看here。