Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 Rails 3升级将分页错误的参数数(2代表1)_Ruby On Rails 3_Upgrade_Will Paginate - Fatal编程技术网

Ruby on rails 3 Rails 3升级将分页错误的参数数(2代表1)

Ruby on rails 3 Rails 3升级将分页错误的参数数(2代表1),ruby-on-rails-3,upgrade,will-paginate,Ruby On Rails 3,Upgrade,Will Paginate,我正在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

我正在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

错误消息说明了这一切:

paginate方法只需要一个参数,即选项哈希。 如果你省略了:all参数,一切都会好的

在gem版本>=3.0中,您可以如下调用较短的页面方法:

paginate(page: page, per_page: total_records, conditions: x, order: "due_date asc")

有关详细信息,请参阅。

您好,谢谢您的建议。在做了那个更改之后,现在我得到了这个错误名称error(未定义的局部变量或#的方法'page'):然后也许您可以用完整的方法名称“paginate”再次尝试。这确实管用!是的,它确实与Paginate一起工作,但是没有(:all)中断视图中的代码的其他部分-文件,但是您不再需要:all,因为现在您隐式地获得了所有。你能在问题的更新中提供损坏的部分吗?嗨,谢谢你的更新。。我将gem版本更新为3.0.3并删除了:所有新代码都是page(:page=>page,:per\u page=>total\u records,:conditions=>x,:order=>“到期日asc”)结束。。现在我收到的错误消息..在114ms TypeError中完成了500个内部服务器错误(无法将哈希转换为整数):app/models/activity.rb:31:in
dashboard\u activities'app/controllers/dashboard\u controller.rb:10:in
index'