1

我试图找出显示所有用户的所有帖子的适当休息方式。

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

我不太清楚这个提要应该放在哪里。并在视图文件中,如何获取发布用户名。

4

2 回答 2

1

在控制器中:

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

鉴于:

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

注意“包括”字。这意味着用户信息将通过对数据库进行 1 次查询的帖子获得。为了更好地理解它,你可以阅读这个

于 2013-05-20T15:57:51.657 回答
0

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

路线.rb

get "posts" => "posts#index"

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

post_controller.rb

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

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

用户.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 %>
于 2013-05-20T15:56:23.773 回答