will_paginate -ActionView :: Template :: Error变量似乎为空

时间:2014-01-09 21:39:13

标签: ruby-on-rails-3 will-paginate

我正在尝试在我的模型上使用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足够聪明,可以处理空结果集而不会抛出异常。

谢谢!

1 个答案:

答案 0 :(得分:3)

正如official will_paginate gem documentation所说:您应该将您的收藏集(在您的情况下为@loadVerifications)作为参数传递给will_paginate查看助手:

<%= will_paginate @loadVerifications %>

这是引发此错误的源代码。

来自will_paginate方法的

method call

method declaration

简单地说:如果没有给will_paginate帮助器收集,它会尝试从控制器名称构建实例变量的名称