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

joe*_*ard 2 ruby-on-rails find ruby-on-rails-3

我正在尝试使用rails检索用户名以插入到博客文章的评论中

如果我使用

<%= comment.user_id %>"
Run Code Online (Sandbox Code Playgroud)

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

<%= User.find_by_id(comment.user_id).name %>"
Run Code Online (Sandbox Code Playgroud)

为什么这不起作用

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

#<User:000x00000182fe48>
Run Code Online (Sandbox Code Playgroud)

Dav*_*ulc 5

最有可能的是,动态查找器正被混淆id并返回(Ruby)对象id(即object_id)而不是记录id.

试着User.find(comment.user_id).name改为打电话.或者,更好:comment.user.name.

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

在控制器中:

@user_name = @comment.user.name
Run Code Online (Sandbox Code Playgroud)

在视图中:

<%= @user_name %>
Run Code Online (Sandbox Code Playgroud)