2014-02-13 4 views
1

저는 레일스에 조금 익숙합니다. 레일즈 2.1 앱을 3.2로 마이그레이션하고 있습니다. steb를 단계별로 시작합니다 (처음 2.1 ~ 2.3 레일, 지금은 3.2).NoMethodError (# <브로드 캐스트 : 0x00000003fd9320>에 대해 정의되지 않은 메소드`page ') :

번들 또는 보석 파일을 사용할 수 없지만 설치해야하는 모든 보석이 있습니다.

내 문제는 이제 페이지 매기기 방식으로 변환됩니다.

나는 나의했다

는 '레일' 가 '프로토 타입 레일' 은 'will_paginate'

을 필요로 필요 '레일/모든'을 필요로 필요 순서에 /config/initializer/load.rb에 필요

libs는 성공적으로로드됩니다.

하지만 원본에서 페이지 매기기를 사용하려고하면이 오류가 발생합니다.

@broadcasts = Broadcast.page(params[:page] || 1).select(select_clause).order(order_clause) 

방송 모델이 나는 단지 내 컨트롤러 전에 그러나 didn를 "will_paginate 필요"넣어하려고

class Broadcast < ActiveRecord::Base 
    extend PhoneNumberFormatValidation 
    ... 
end 

같은 것이있다 :

NoMethodError (undefined method `page' for #<Broadcast:0x00000003fd9320>): 
    app/controllers/broadcasts_controller.rb 

내 컨트롤러가이 코드를 가지고 일하지 마라. 내가 레일 콘솔

[[email protected] web]$ rails c 
irb(main):001:0> require 'will_paginate' 
=> false 

을 실행하면 그 이유를 방법 페이지를 매기는 것입니다 찾을 수 이해하지 않습니다. 그는 ActiveRecord :: Base로 작업합니까?

내 보석은 다음과 같습니다

*** LOCAL GEMS *** 

actionmailer (3.2.11) 
actionpack (3.2.11) 
activemodel (3.2.11) 
activerecord (3.2.11) 
activerecord-oracle_enhanced-adapter (1.4.1) 
activeresource (3.2.11) 
activesupport (3.2.11) 
arel (3.0.2) 
bigdecimal (1.1.0) 
builder (3.0.4) 
bundler (1.2.3) 
coderay (1.0.5) 
coffee-rails (3.2.2) 
coffee-script (2.2.0) 
coffee-script-source (1.4.0) 
dbi (0.4.5) 
deprecated (2.0.1) 
erubis (2.7.0) 
execjs (1.3.2) 
fastercsv (1.5.0) 
hike (1.2.1) 
i18n (0.6.1) 
io-console (0.3) 
journey (1.0.4) 
jquery-rails (2.1.4) 
json (1.7.7) 
libv8 (3.11.8.13 x86_64-linux) 
libxml-ruby (2.1.0) 
mail (2.4.4) 
method_source (0.8.2) 
mime-types (1.19) 
minitest (3.2.0) 
multi_json (1.7.2) 
pg (0.14.1) 
polyglot (0.3.3) 
prototype-rails (3.2.1) 
pry (0.9.12) 
puma (1.6.3) 
rack (1.4.1) 
rack-cache (1.2) 
rack-ssl (1.3.2) 
rack-test (0.6.2) 
rails (3.2.11) 
railties (3.2.11) 
rake (0.9.2.2) 
rdoc (3.12) 
ref (1.0.2) 
ruby-oci8 (2.1.2) 
ruby-plsql (0.5.0) 
sass (3.2.5) 
sass-rails (3.2.5) 
slop (3.4.6) 
sprockets (2.2.1) 
therubyracer (0.11.4) 
thor (0.16.0) 
tilt (1.3.3) 
treetop (1.4.12) 
tzinfo (0.3.35) 
uglifier (1.3.0) 
will_paginate (3.0.2) 
+0

당신은'require 'will_paginate/active_record''을 사용하여 시도 할 수 있습니까? –

+0

같은 오류가 있습니다. 하지만 레일 콘솔을 실행하고 나는이 이동 : (주) ​​ IRB : 001 : (주) ​​0> 필요 'will_paginate/active_record' => 진정한 IRB : 002 : 0> – fabio

+0

내가 모든로드해야 할 내가 필요로하는 will_paginate의 자녀? – fabio

답변

1

require 'will_paginate/active_record' 

이 Bundler를 통해 일반 설정에서 will_paginate로드 차일 당신이 추적 할 수있는 특정 차일을로드하려면 사용해보십시오 .. 그런 식 때문에 이 자식들을 로딩 할 필요가 없습니다.

+0

당신의 솔루션은 좋았지 만 나는 잘못된 곳에서 보석을 적재하고있었습니다. 보석을 적재하기위한 최적의 장소는 config/application.rb의 시작 부분에 있습니다. 버전 3.2 이후 일부 보석에는 게으른 로딩이 있으며, 후자가 필요할 경우 잘로드되지 않습니다. 탱크 있습니다. – fabio