使用find_by_id检索用户名(comment.user_id).name无效

时间:2011-06-01 16:18:43

标签: ruby-on-rails ruby-on-rails-3 find

我正在尝试使用rails

检索用户名以插入博客文章的评论中

如果我使用

<%= comment.user_id %>"

它会给我一个id但是如果我尝试检索用户然后调用它返回的名称nil class

<%= User.find_by_id(comment.user_id).name %>"

为什么这不起作用

如果我离开.name,它会在内存中返回一个空格。

#<User:000x00000182fe48>

1 个答案:

答案 0 :(得分:5)

最有可能的是,动态查找器被id弄糊涂了,并返回(Ruby)对象的id(即object_id)而不是记录的id

请尝试拨打User.find(comment.user_id).name。或者,更好:comment.user.name

以上应该回答你的问题,但你真正想做的是:

在控制器中:

@user_name = @comment.user.name

在视图中:

<%= @user_name %>