我是RoR的新手。请告诉我如何从ActiveRecord :: Relation获取属性?例如,我写道:
@user = User.where(code: 123)
接下来我想采用属性ID
id = @user.id
但这种方法不起作用。提前致谢
答案 0 :(得分:2)
如果您想找到code == 123
的单个用户,可以使用find_by
方法,如下所示:
@user = User.find_by(code: 123)
它会返回User
个实例,因此您可以在其上调用id
方法。
编辑:如果您在4.x版本之前使用Rails,则可以使用动态find_by_code
查找程序:
@user = User.find_by_code(123)
答案 1 :(得分:2)
使用.where 时会为您提供active record relation
,因此您无法直接在其上找到ID,因为它不是单个模型对象的关系。 的
<强>修正:强>
你可以做到
@user = User.where(code: 123).first
OR
您可以使用dynamic finders
@user = User.find_by_code(123)
答案 2 :(得分:0)
您正在使用where
子句返回数组。使用它像:
@user = User.where(code: 123).first
以上是不正确的查询方式。因此,您也可以编写代码来查找用户:
@user = User.find_by_code(123)
通过以上两种方式获得单个对象,您可以从中找到任何属性。 @user.id
等
答案 3 :(得分:0)
我猜您遗失first
,where
会返回array
个对象,因此您需要先使用该对象从数组中取出
这样做
@user = User.where(code: 123).first
id = @user.id