【发布时间】:2014-01-27 23:07:30
【问题描述】:
我正在尝试弄清楚如何循环遍历两个对象数组并在视图中以混合顺序显示它们——按它们的创建日期。
这是我当前的控制器代码,它仅根据您所在的类别或基于搜索查询显示帖子:
def browse
@user = current_user
if params[:category]
@category = Category.find(params[:category])
@posts = @category.posts.page(params[:page])
else
@posts = Post.search(params)
end
end
在视图中,我只是像这样循环并输出这些:
- if @posts
- @posts.each do |post|
= post.name
= post.content
我想做的不是通过实例变量@posts 引用帖子...我想创建一个新变量(即:@everything)——它从 Post 类和注释类,将它们弹出到同一个数组中,并允许我在视图中分别循环和输出每个,如下所示:
理想控制器:
def browse
@user = current_user
if params[:category]
@category = Category.find(params[:category])
@everything = @category.everything(params[:page]) # ... combination of comments and posts
else
@everything = Everything.search(params)
end
end
理想视图:
- if @everything
- @everything.each do |e|
- if e.type == 'post'
= e.name
= e.content
- else
= e.comment
感谢任何帮助/指导。我只是不确定如何解决这个问题。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1