Hop*_*eam 5 ruby ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1
我在返回单个对象的模型上有where操作.但我似乎无法在对象表示法中使用它(它似乎返回一个对象为[0]的数组).
store = Store.where("some_id = ?", some_id)
puts store.name # doesn't work
puts store # shows array with the object at [0]
Run Code Online (Sandbox Code Playgroud)
Jak*_*mpl 10
因为有时您不知道查询应该返回多少个对象,所以为了保持一致性,您总是得到一个数组.
要使用单个对象
store = Store.where("some_id = ?", some_id).first
Run Code Online (Sandbox Code Playgroud)
如果您正在寻找模型的主要ID,您也可以使用
store = Store.find(some_id)
Run Code Online (Sandbox Code Playgroud)
如果没有找到对象,它将引发RecrodNotFound异常(默认情况下由rails处理为404).
还有动态查找器
Store.find_by_some_id(some_id)
Run Code Online (Sandbox Code Playgroud)
他们相当于
Store.where(:some_id => some_id).first
Run Code Online (Sandbox Code Playgroud)