在视图中,我有以下代码:
<%= Photo.where(user_token: @token) %>
返回:
#<Photo::ActiveRecord_Relation:0x007fee45353ac8>
如果我添加.inspect
#<ActiveRecord::Relation [#<Photo id: 420, photo_url: "Screen_Shot_2015-01-03_at_1.11.25_AM.png", created_at: "2015-02-03 02:06:28", updated_at: "2015-02-03 02:06:28", user_token: "gila-2">]>
但如果我这样做:
<%= Photo.where(user_token: @token).photo_url %>
我得到undefined method photo_url for <Photo::ActiveRecord_Relation
答案 0 :(得分:1)
如果您只想加载与查询匹配的第一条记录,请使用find_by
方法:
Photo.find_by(user_token: @token)
该方法只返回一条记录(如果未找到,则返回nil
)。而where
返回的关系(简化!)就像数组一样。
答案 1 :(得分:0)
如果多个记录符合ActiveRecord::Relation
条件,则where
可以表示许多记录。尝试类似:
<%= Photo.where(user_token: @token).first.photo_url %>