我在我的控制器中有这个:
@artists = Artist.where("artist LIKE ?", "%#{params[:term]}%").limit(500).paginate(params[:page])
Run Code Online (Sandbox Code Playgroud)
我收到了can't dup NilClass错误.
现在,params [:term]和params [:page]是两个不同的变量,为什么错误会出现呢?如果我删除第二个params变量,则错误消失.
即使我这样做,它仍然会出现:
page = params[:page]
Run Code Online (Sandbox Code Playgroud)
然后在下面:
paginate(page)
Run Code Online (Sandbox Code Playgroud)
我想了解为什么会发生这种情况以及如何解决它,如何在没有该错误的同一行中使用params()中的2个变量.
编辑
我发现用一个整数代替params [:page]会导致一个稍微不同的错误:can't dup FixNum所以问题可能不是params而是其他问题.但仍然不知道如何解决它.
kak*_*bei 14
我的错.我为此道歉,但我不恰当地使用了分页.我希望我能删除这个问题,但似乎没有办法.使用它的正确方法是:
paginate(:page => params[:page]
Run Code Online (Sandbox Code Playgroud)
我想这就是当你长时间盯着代码时会发生什么:)
也许它会帮助其他人与Paginate打交道.我非常喜欢它,但错误可能更具描述性.
例如,除非我这样做,否则我总是会得到一个未知的方法错误:
<%= will_paginate @artists if @artists.respond_to? :total_pages %>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2865 次 |
| 最近记录: |