我正在使用ruby 1.9.3将我的rails应用程序从2.3.5升级到3.2.5。在旧应用程序中,我使用了will_paginate插件,我将其转换为gem。
升级后,我收到以下错误: 错误的参数数量(2对1)
应用程序跟踪的几行: 应用程序跟踪|框架跟踪|完整跟踪
will_paginate (3.0.3) lib/will_paginate/active_record.rb:124:in `paginate'
app/models/activity.rb:28:in `dashboard_activities'
app/controllers/dashboard_controller.rb:10:in `index'
actionpack (3.2.5) lib/action_controller/metal/implicit_render.rb:4:in `send_action'
actionpack (3.2.5) l
我认为问题出在活动模型中的旧代码中,我正在使用分页。有人可以帮忙吗?
代码:
def dashboard_activities(page, total_records, date_range1 = nil, date_range2 = nil )
unless date_range2.nil?
x =[ "is_delete = false AND status = 'open' AND date(due_date) between ? and ?", date_range1, date_range2]
else
x =[ "is_delete = false AND status = 'open' AND date(due_date) = ? ", date_range1]
end
paginate(:all,
:page =>page,
:per_page =>total_records,
:conditions => x,
:order =>"due_date asc")
end
答案 0 :(得分:2)
错误消息说明了一切:
paginate方法只需要一个参数,那就是选项哈希。 如果你省略:all参数都可以正常工作。
在gem版本> = 3.0中,您可以调用这样的较短页面方法:
paginate(page: page, per_page: total_records, conditions: x, order: "due_date asc")
有关详细信息,请参阅will_paginate wiki。