我为行
的#`错误收到undefined method
first_name'
<td><%= User.where("id = event.user_id").first_name%></td>
有没有办法查找用户active_record的方法?
答案 0 :(得分:1)
尽量避免在您的视图中进行查询。
默认情况下,activerecord find
方法使用其id
查找记录。因此,您可以在控制器操作中执行以下操作
@user = User.find(event.user_id)
然后将其公开到像
这样的视图<td><%= @user.first_name %></td>
您的查询存在的问题是,它会查找id
等于字符串"event.user_id"
的记录。另请注意,where
会返回ActiveRcecord Relation
而不是单个记录。
因此,您必须使用first
或take
来检索第一条记录。 where
通常应该用于非唯一的列(返回多个记录)。
由于我们知道id
是唯一的,因此您可以使用find
方法来检索记录。
希望这有帮助!