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が作成されます。次に、すべての投稿を表示する 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 %>
于 2013-05-20T15:56:23.773 に答える