2011-09-14 46 views
2

新安裝will_paginate 3.0.0未定義的方法`will_paginate」,Rails的3.1/DataMapper的

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

運行控制器查詢:

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

其中一期工程,拉起了用戶的所有門票和如果我放入頁面,則在5中分頁?page = X其中x是url中的頁碼。

=will_paginate(@tickets) 
視圖

不起作用,這導致

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

所以will_paginate的作品,而不是視圖助手。我錯過了什麼嗎?如果這有什麼不同,我使用纖薄的模板。是否有一些我缺少的語法更改?這個文檔很簡單,但在這一點之外沒有任何幫助。我查看了源代碼,但似乎沒有任何更改,但我無法確定它爲何無法訪問。

然後相切,這會與關聯混亂。

=> @ instance.model_belonging_to_instance.create(:文本=> '測試')

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 

SOLUTION:

的Gemfile:

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

初始化器:

require 'will_paginate' 
require 'will_paginate/data_mapper' 

它出現了,但如果不是在模板的頂部,我得到一個

棧層次過深

錯誤,我無法解釋

回答

2

不要在Gemfile中使用:require選項,因爲您已經想清楚了;而是在config/application.rb中的某個地方需要「will_paginate/data_mapper」,例如在Bundler安裝之後。

+0

我得到完全相同的錯誤,但僅在測試環境中。目前使用RSpec和水豚來測試請求。我已經在這裏實施了這些說明,但沒有任何效果。有任何想法嗎? –

0
gem 'will_paginate', '~> 3.0.0', require: %w[ 
    will_paginate 
    will_paginate/data_mapper 
] 
相關問題