我一直在努力找到这个答案,也许这太简单了……
在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,comments: "here's a second comment",twitter: "please",created_at: "2012-05-09 05:20:03",updated_at: "2012-05-09 05:20:03">
我现在如何迭代测试,以便视图显示来自comments和created_at字段的数据:
这是第一条评论,2012-05-09 04:21:16
这是第二条评论,2012-05-09 05:20:03
<% @posts.each do |c| %> <%= c.posts.comments %> <%= c.posts.created_at %> <% end %>
解决方法
@ posts.each中的“c”执行| c |表示@posts集合中的特定post对象.
所以,从某种意义上说,你正试图做<%= post.posts.comments%>.
以下是代码的外观:
<% @posts.each do |p| %> <%= p.comments %> <%= p.created_at %> <% end %>