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 помощник, он пытается построить имя переменной экземпляра из имени контроллера

Другие вопросы по тегам