undefined方法`will_paginate’,Rails 3.1 / DataMapper

新安装的will_paginate 3.0.0

gem 'will_paginate', '~> 3.0.0', :require=>'will_paginate/data_mapper' 

运行控制器查询:

 @tickets = Ticket.paginate(:page => params[:page], :per_page => 5,:username => @ticket.username) 

哪个有效,如果我放了?页面= X,其中x是url中的页码,则为5个用户提取所有门票和分页。

 =will_paginate(@tickets) 

在视图中不起作用,这导致了

 undefined method `will_paginate' for #<#:0x0000000535cd48> 

所以will_paginate可行,但不是视图助手。 我错过了什么吗? 如果这有任何区别,我会使用纤细的模板。 我缺少一些语法变化吗? 文档很简单但超出了这一点无益。 我查看了源代码,似乎没有任何变化,但我无法理解为什么它无法访问

然后切线,这与关联混乱。

=> @ instance.model_belonging_to_instance.create(:text =>’test’)

 TypeError: can't convert nil into Integer from /home/qx/.rvm/gems/ruby-1.9.2-p180/gems/will_paginate-3.0.0/lib/will_paginate/page_number.rb:16:in `Integer' etc etc et al 

解:

的Gemfile:

 gem 'will_paginate', '~> 3.0.0' # removed this, :require=>'will_paginate/data_mapper' 

初始化程序:

 require 'will_paginate' require 'will_paginate/data_mapper' 

它出现了,但如果不是在模板的顶部,我会得到一个

堆栈级别太深

错误我无法解释

正如您已经想到的那样,不要在Gemfile中使用:require选项; 而是在config / application.rb中的某处需要“will_paginate / data_mapper”,例如在Bundler设置之后。

有一个类似的问题,答案表明这里的自动要求是问题所在。 请参阅will_paginate undefined方法。 Will_paginate gem似乎可以解决问题和答案。

 gem 'will_paginate', '~> 3.0.0', require: %w[ will_paginate will_paginate/data_mapper ]