我怎么能显示最近添加@post和@photos在一个列表?例如:的Rails:多种型号的记录列表
post - LAlala (10.10.2011)
photos - [] [] [] [] (1.1.2011)
post - Bbbdsfbs (2.12.2010)
post - Lasdasdf2 (2.10.2009)
我怎么能显示最近添加@post和@photos在一个列表?例如:的Rails:多种型号的记录列表
post - LAlala (10.10.2011)
photos - [] [] [] [] (1.1.2011)
post - Bbbdsfbs (2.12.2010)
post - Lasdasdf2 (2.10.2009)
@posts = Post.limit(20).order('created_at desc')
@photos = Photo.limit(20).order('created_at desc')
@recent_items = (@posts + @photos).sort_by(&:created_at)
<% @recent_items.each do |item| %>
<% if item.class == "Photo" %>
<%= image_tag item.url %>
<% else %>
<%= item.title %>
<% end %>
<% end %>
或者,使用group_by
做这样的:
@recent_items = (@posts + @photos).group_by(&:created_at)
<% @recent_items.each do |date, items| %>
Date: <%= date %>
<% items.each do |item| %>
Show information here.
<% end %>
<% end >
我认为逻辑移动到一个帮手,如果我是你的机码。
最好就是做这个是数据库。
我只想说:多态性+数据库视图。
创建包含您从两个邮政和照片需要的列,包括列数据库视图“型”包含模型(你需要它的多态性)的名称。将此视图称为“list_items”。然后创建一个名为“ListItem”的模型。然后,您可以像使用其他任何方式一样使用此模型,对它进行分页并随时做出任何其他操作。
ListItem.order("created_at > ?", Date.yesterday).page(params[:page])
而且不要忘记配置polymorphic association
然而,这一切是很容易与listable宝石来完成。一探究竟!
太棒了!但我如何分页呢? – everm1nd
这取决于你用于分页的内容。发布一个单独的问题。 – bricker
是否曾经有一篇关于分页的后续文章? –