9

레일스 3에서 작동하는 OAuth 젬을 얻으 려하고 있습니다.이 이상한 문제에 부딪 힙니다 ... (보석과는 별도로, 전에 한번 생각한 적이 있습니다)처음 컨트롤러 호출, 상수 정의, 두 번째 호출, "초기화되지 않은 상수 Oauth"?

나는 가지고 있습니다. "OauthTestController"라는 컨트롤러와 "ConsumerToken"이라는 모델이 있습니다. 모델은 이렇게 보입니다.

require 'oauth/models/consumers/token' 
class ConsumerToken < ActiveRecord::Base 
    include Oauth::Models::Consumers::Token 
end 

나는 "/ oauth_test/트위터"에 이동

, 그것은 Oauth::Models::Consumers::Token 모듈을로드하고 난 문제를 트위터 없습니다에 연결할 수 있어요.

NameError (uninitialized constant Oauth): 
    app/models/consumer_token.rb:4 
    app/models/twitter_token.rb:2 
    app/controllers/oauth_test_controller.rb:66:in `load_consumer' 

왜 즉 :하지만 두 번째로 내가 (단지 /oauth_test/twitter URL을 새로 고침)를 시도, 그것은 내게 오류를 준다? 로드 경로와 관련이 있거나 개발 모드에있을 수도 있습니다.

+0

프로덕션 모드에서 작동합니까? –

답변

5

require 대신 require_or_load를 사용해보십시오. 그럴 때마다 개발이 진행될 때마다 충분한 부하가 걸리고 때로는 이런 종류의 문제에 도움이 될 수 있습니다.

2

예. 개발 모드에있는 것과 관련이 있습니다. 귀하의 development.rb에서 config.cache_classes = true를 설정하면 작동합니다 (하지만 엉덩이의 통증입니다)

관련 문제