我正在试图找出显示所有用户的所有帖子的正确安静方式。
我有一个用户和帖子资源的应用程序。 post资源嵌套在用户中。现在我正在尝试显示所有帖子的提要以及发布它们的用户的名称。
我无法弄清楚这个饲料应该放在哪里。在视图文件中,如何获取帖子用户名。
答案 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 %>