すべてのユーザーからのすべての投稿を表示する適切な安らかな方法を見つけようとしています。
ユーザーと投稿リソースを含むアプリケーションがあります。投稿リソースはユーザーにネストされています。今、私はすべての投稿のフィードとそれらを投稿したユーザーの名前を表示しようとしています。
このフィードをどこに配置すればよいかわかりません。ビューファイルで、投稿ユーザー名を取得する方法。
すべてのユーザーからのすべての投稿を表示する適切な安らかな方法を見つけようとしています。
ユーザーと投稿リソースを含むアプリケーションがあります。投稿リソースはユーザーにネストされています。今、私はすべての投稿のフィードとそれらを投稿したユーザーの名前を表示しようとしています。
このフィードをどこに配置すればよいかわかりません。ビューファイルで、投稿ユーザー名を取得する方法。
コントローラーで:
@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が作成されます。次に、すべての投稿を表示する index のアクションがあることを確認します。
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 %>