如何查找活动记录的方法

时间:2016-08-17 22:55:22

标签: ruby-on-rails rails-activerecord

我为行

的#`错误收到undefined method first_name'
<td><%= User.where("id = event.user_id").first_name%></td>

有没有办法查找用户active_record的方法?

1 个答案:

答案 0 :(得分:1)

尽量避免在您的视图中进行查询。

默认情况下,activerecord find方法使用其id查找记录。因此,您可以在控制器操作中执行以下操作

@user = User.find(event.user_id)

然后将其公开到像

这样的视图
<td><%= @user.first_name %></td>

您的查询存在的问题是,它会查找id等于字符串"event.user_id"的记录。另请注意,where会返回ActiveRcecord Relation而不是单个记录。

因此,您必须使用firsttake来检索第一条记录。 where通常应该用于非唯一的列(返回多个记录)。

由于我们知道id是唯一的,因此您可以使用find方法来检索记录。

希望这有帮助!