Я пытаюсь разобраться, как перебирать два массива объектов и отображать их в смешанном порядке в представлении - по дате их создания.Петля через два массива объектов, сортировать по дате, созданной
Вот мой текущий код контроллера, который отображает только сообщения на основе категории вы находитесь, или, на основе поискового запроса:
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 и класса Comment, выталкивает их в один и тот же массив и позволяет мне зацикливаться СТГ и выход каждого соответственно, на мой взгляд, как это:
Идеальный контроллер:
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
Любая помощь/руководство ценится. Я просто не знаю, как подойти к этому.