2011-04-22 93 views
2

如何从Rails 3中的ID获取用户名? 在我看来,我打电话给<%= blog.user_id%>这个ID,但是如何得到这个名字呢?Rails 3通过ID获取用户名

控制器是默认脚手架。

映入眼帘,

马克

回答

3

确保您在Blog模型中定义的关联。

belongs_to :user 

,然后在看你可以使用<%= blog.user.name %>

+1

我已经做了,但我得到一个错误: 未定义的方法'名称” “#<用户:0x00000102b7a630>”:用户 该名称保存在用户名中。当我将其更改为用户名时,错误为: 未定义的方法'用户名'为零:NilClass – Maaaark 2011-04-22 13:21:30

+0

在这种情况下,我还怀疑您有一个没有关联用户的博客实例。为了避免这个错误,你可以使用:'<%= blog.user.try(:username)%>'。 – 2011-04-22 14:40:28

+0

伟大的工作对我来说!我忘了删除没有用户标识的旧博客文章。删除它们后,您的第一个解决方案也可以运行谢谢! – Maaaark 2011-04-22 15:36:46

1

您应该使用<%= blog.user.name %>和您的博客模型定义

belongs_to :user 

。您应该在视图级别上使用..._id

2

通常你想避免像post.user.name点的长链。尝试:

class Post < ActiveRecord::Base 
    belongs_to :user 
    delegate :name, :to => :user, :prefix => true 
end 

然后在你的观点,你可以调用

@post.user_name 

,以获得用户名。我想我会把它扔到那里,因为它的好习惯我也试图包含在我的代码中。

0

使用尝试<%= blog.user.try(:名称)%>