使用 ActiveRecord 的作用域指令返回单个结果
我的以下课程在我的单元测试中运行良好,但我觉得它可以更简单。
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
?
I have the following class that works fine in my unit tests but I feel it could be simpler.
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
I have tried appending the .first
into the lambda
clause but that causes an error.
How do I tell the scope
I only want the first result, and thus eliminate the method current_license
completely?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
让它成为一个方法,你可以得到这样的结果:
至于结果的数量,尝试添加一个
.limit(1)
。有关更多信息,请查看此处。Make it a method, and you can get this:
As for the number of results, try to add a
.limit(1)
. For more info, have a look here.