Несколько сложное действие объединяет два набора массивов в один.
@packages = (@packageoffers + @availables).sort_by(&:cost).paginate :page => params[:page], :per_page => 20
Представление затем отображает частичное
@packages.each do |package|
if @packages_m.include?(package)
@mss = true
render partial: 'package', collection: @packages
elsif @availables.include?(package)
@mss = false
render partial: 'package', collection: @packages
else
end
Указанный частичный элемент затем имеет два условных блока на основе@mss ( html code stripped ):
number_to_currency(markup_price)
if @mss == true
package.typounit.stars
else
package.product_category
Ошибка, которая возникает случайная
ActionView::Template::Error (undefined method 'product_category' for #<Packageoffer:
Иногда, поскольку нумерация страниц имеетзаданная позиция с помощью триангуляции: страницы, на которых отображаются все результаты из одного массива или другого.Страницы, результаты которых получены в обоих массивах, генерируют ошибку.
Несмотря на то, что я вижу поведение, я не могу понять, почему оно функционирует, когда коллекция поступает из одного класса.
И, таким образом, каково решение?Я вижу две возможности:
• Может ли частичный вызов подмассива (@packageoffers
или @availables
)?
• Является ли логический @mss
возможным виновником?
• В этом случае проблема нумерации страниц может стать проблемойпоскольку рельсы могут потерять след, какую коллекцию считать