Я хочу объединить данные из двух разных моделей, объединить их в один массив и использовать жемчужину will_paginate, чтобы разбивать результаты на мой взгляд на эту коллекцию. Я уже использую require 'will_paginate/array'
, чтобы обеспечить нормальный массив без ActiveRecord и все его работу исправно.Объедините 2 модели в один массив, paginate и force 1 partial
Моя проблема заключается в том, что он использует два разных элементарных элемента для визуализации записей, основанных на том, из какой модели были получены данные. Как заставить его визуализировать одну конкретную часть?
Контроллер
def sample_action
page = params[:page] || 1
@collection = []
@car.messages.select {|msg| @collection << msg}
Alerts.where(car_id: @car.id).select {|alerts| @collection << alerts}
@collection = @collection.sort{|a,b| b[:created_at] <=> a[:created_at]}
@collection = @collection.paginate(:page => page, :per_page => 30)
respond_to do |format|
format.html { render :sample_action }
end
end
вид
<% if @collection.count > 0 %>
<div class="row">
<div class="col-xs-12">
<div id="car-alerts" class="car-alerts-all">
<%= render @collection -%>
</div>
</div>
</div>
<%= will_paginate @collection -%>
<% else %>
<p class="no-alerts-message">Your car is healthy</p>
<% end %>
автомобиля частичная
Car - <%= collection.id %>
<br>
предупреждение частичного
Alert - <%= collection.id %>
<br>
Я думал о делать это таким образом, но беспокоился о нем становится немного беспорядочный. Определенно один из способов сделать это. –