10

私はこの答えを見つけようとしてきましたが、単純すぎるかもしれません...

Rails で、activerecord プルから必要な特定のフィールドを反復処理する最良の方法は?

すべてのレコードをプルするコメント (名前付き投稿) のコントローラーがあります。

def index
@posts = Post.find(:all)
end

次に、インデックス ビューで <%= @posts %> を使用すると、すべてのデータを取得できます...これは素晴らしいことです...

#<Post id: 1, user_id: "9", picture: nil, comments: "here's a first comment", title: nil, twitter: nl, frame: nil, created_at: "2012-05-09 04:21:16", updated_at: "2012-05-09 04:21:16"> #<Post id: 2, user_id: "9", picture: nil, comments: "here's a second comment", title: nil, twitter: "please", frame: nil, created_at: "2012-05-09 05:20:03", updated_at: "2012-05-09 05:20:03"> 

ビューにコメントと created_at フィールドからのデータが表示されるように、テストを反復するにはどうすればよいですか。

これが最初のコメントです。2012-05-09 04:21:16

これが 2 番目のコメントです。2012-05-09 05:20:03

以下を試してみましたが、エラーが発生しました。

<% @posts.each do |c| %>
   <%= c.posts.comments %>
   <%= c.posts.created_at %>
<% end %>
4

2 に答える 2

21

の「c」は、コレクション@posts.each do |c|内の特定の投稿オブジェクトを表します。@posts

だから、ある意味であなたがやろうとしている<%= post.posts.comments %>.

コードは次のようになります。

<% @posts.each do |p| %>
   <%= p.comments %>
   <%= p.created_at %>
<% end %>
于 2012-05-10T15:35:13.557 に答える
10

これを次のように変更します。

<% @posts.each do |post| %>
   <%= post.comments %>
   <%= post.created_at %>
<% end %>

内部変数に出力変数の単数形の名前を付けると、人々が従うのが簡単になることがわかりました。したがって@posts、外側がpost内側になります。

幸運を!

于 2012-05-10T15:37:32.577 に答える