我正在将 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
最佳答案
错误消息说明了一切:
分页方法只需要一个参数,那就是选项哈希。 如果省略 :all 参数,一切都会正常工作。
在 gem 版本 >= 3.0 中,您可以像这样调用较短的页面方法:
paginate(page: page, per_page: total_records, conditions: x, order: "due_date asc")
参见 will_paginate wiki了解更多详情。
关于ruby-on-rails-3 - Rails 3 升级 will_pagination 参数数量错误(2 为 1),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11174706/