显示每个帖子的用户信息

时间:2009-08-15 09:54:08

标签: ruby-on-rails

Rails 2.3.3

数据库和模型架构

用户(身份证,姓名,电子邮件)

帖子(id,subject,message,user_id)

如何显示创建特定帖子的用户的name

#posts controller
#index action - retrieves all posts in descending order. 
#I also want it to retrieve user information of that post

def index
    @posts = Post.all( :order => "created_at DESC")
    respond_to do |format|
      format.html
    end
end
#partial _post.html.erb

Posted by "??how can show the user name here??"

我已使用有效记录关联修改了user.rbpost.rb并设置了外键。即post.user_id引用user.id

但是如何在index操作中显示每个帖子的用户信息?

3 个答案:

答案 0 :(得分:2)

<%= post.user.name%>鉴于帖子记录中存储了有效的user_id。

答案 1 :(得分:1)

我将你问题的更大版本构建为:“我如何在Ruby on Rails应用程序中理清模型之间的关系?”

我发现最有用的是使用“脚本/控制台”来探索可用的内容。

在终端中,cd到rails root并输入“script / console”,这将启动一个可以在其中创建对象的新命令行。

在这种情况下,您可以输入类似以下内容的内容来理清可用的内容。

p = Post.find(:first)

p.user

p.user.name

答案 2 :(得分:0)

您可以在rails控制台中查看此内容。 Post.first.user.name

你想在视图中显示它, @ posts.each do | post |  <%= post.user.name%> 端

希望它会有所帮助。