will_paginate -ActionView::Template::Error переменная кажется пустой
Я пытаюсь реализовать простую индексную страницу для одной на моих моделях, которая использует гем will_paginate. (Rails 3) и получаю следующую ошибку:
ActionView:: Template:: Error (переменная @load_verifications кажется пустой. Вы забыли передать объект коллекции для will_paginate?)
Мой код такой же (насколько я могу судить), как и все другие страницы индекса, которые я использую will_paginate для этой работы.
LoadVerificationsController.rb:
def index
@loadVerifications = LoadVerification.paginate(page: params[:page], per_page: 10).order('ship_date')
end
index.html.erb:
<% provide(:title, 'All Loads')%>
<h1>All Loads</h1>
<%= will_paginate %>
<ul>
<%= render @loadVerifications %>
</ul>
<%= will_paginate %>
_load_verification.html.erb:
<li>
<%= loadVerification.sales_order %>
<%= loadVerification.ship_date %>
<%= loadVerification.pallet_count %>
<%= link_to "view", loadVerification %>
Любая помощь будет оценена. Я не уверен, откуда берется переменная @load_verification, на которую ссылается сообщение об ошибке, поскольку я не объявил ее в контроллере, а используемая переменная - @loadVerification (без подчеркивания). Я также упомяну, что в настоящее время у меня нет данных в таблице LoadVerifications, но я думаю, что will_paginate достаточно умен, чтобы обрабатывать пустой набор результатов без исключения.
Спасибо!
1 ответ
Как гласит официальная документация по will_paginate, вы должны передать свою коллекцию (@loadVerifications
в вашем случае) в качестве параметра will_paginate
просмотр помощника:
<%= will_paginate @loadVerifications %>
Вот исходный код, который вызывает эту ошибку.
вызов метода изнутри will_paginate
метод.
Вкратце: если коллекция не передана will_paginate
помощник, он пытается построить имя переменной экземпляра из имени контроллера