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)
最有可能的是,动态查找器正被混淆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)