我试图找出显示所有用户的所有帖子的适当休息方式。
我有一个带有用户和帖子资源的应用程序。帖子资源嵌套在用户中。现在我正在尝试显示所有帖子的提要以及发布它们的用户的名称。
我不太清楚这个提要应该放在哪里。并在视图文件中,如何获取发布用户名。
我试图找出显示所有用户的所有帖子的适当休息方式。
我有一个带有用户和帖子资源的应用程序。帖子资源嵌套在用户中。现在我正在尝试显示所有帖子的提要以及发布它们的用户的名称。
我不太清楚这个提要应该放在哪里。并在视图文件中,如何获取发布用户名。
在控制器中:
@posts = Post.all(:include => "user")
鉴于:
<% @posts.each do |post| %>
...
some html here
...
<%= post.user.name %>
<% end %>
注意“包括”字。这意味着用户信息将通过对数据库进行 1 次查询的帖子获得。为了更好地理解它,你可以阅读这个
您可以通过以下方式创建显示所有帖子的路线:
路线.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 %>