我正在尝试在我的模型上使用will_paginate gem实现一个简单的索引页面。 (Rails 3)并收到以下错误:
ActionView :: Template :: Error(@ load_verifications变量似乎是空的。您是否忘记为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足够聪明,可以处理空结果集而不会抛出异常。
谢谢!
答案 0 :(得分:3)
正如official will_paginate gem documentation所说:您应该将您的收藏集(在您的情况下为@loadVerifications
)作为参数传递给will_paginate
查看助手:
<%= will_paginate @loadVerifications %>
这是引发此错误的源代码。
来自will_paginate
方法的
简单地说:如果没有给will_paginate
帮助器收集,它会尝试从控制器名称构建实例变量的名称