列出所有帖子的正确“RESTFUL”方式是什么

时间:2013-05-20 15:40:29

标签: ruby-on-rails ruby

我正在试图找出显示所有用户的所有帖子的正确安静方式。

我有一个用户和帖子资源的应用程序。 post资源嵌套在用户中。现在我正在尝试显示所有帖子的提要以及发布它们的用户的名称。

我无法弄清楚这个饲料应该放在哪里。在视图文件中,如何获取帖子用户名。

2 个答案:

答案 0 :(得分:1)

控制器中的

@posts = Post.all(:include => "user")

在视图中:

<%  @posts.each do |post| %>
   ...
   some html here
   ...
   <%= post.user.name %>
<% end %>

注意“包含”一词。这意味着用户信息将通过1个查询到数据库的帖子获得。 为了更好地理解它,您可以阅读this

答案 1 :(得分:0)

您可以通过以下方式创建显示所有帖子的路线:

的routes.rb

get "posts" => "posts#index"

这将创建一条显示所有帖子的路线http://yourdomain.com/posts。然后确保您有一个索引操作来显示所有帖子。

posts_controller.rb

class PostsController < ApplicationController
  def index
    @posts = Post.all(:include => "user")
  end
end

确保您的模型关联设置正确。

user.rb

has_many :posts

post.rb

belongs_to :user
# This assumes you have a column on your table for user_id which I assume you do since you mentioned your nested resource already.

您查看只会显示与每个帖子关联的用户名。 视图/帖/ index.rb

<% @posts.each do |post| %>
  post.user.name
<% end %>