以前我以前做过
project = Project.find_by_name('foo')
现在rails3有更好的语法,所以我开始使用
project = Project.where(:name => 'foo').limit(1).first
然而,这种新风格过于冗长。有没有我应该知道的捷径。
答案 0 :(得分:3)
第一个应该仍然有效。不是吗?
答案 1 :(得分:2)
添加.limit(1)
是多余的;调用.first
方法已经为您完成此操作。与其他答案一样,第一种风格应该仍然完美无缺,并且不会弃用。
答案 2 :(得分:1)
如何使用命名范围?
scope :find_foo, where(:name => 'foo').limit(1).first
然后就这样做
Project.find_foo
当然你可以使用lambda
使其动态化答案 3 :(得分:0)
只是
有什么问题project = Project.where(:name => 'foo')
您对find_by_name没有限制,因此我假设名称是唯一的。