2010-05-09 15 views
9

我想获得OAuth宝石与Rails 3一起工作,我遇到了这个奇怪的问题......(独立于宝石,我想我已经遇到过这一次)第一次调用Controller,定义了常量,第二次调用“未初始化的常量Oauth”?

我有一个名为“OauthTestController”的控制器和一个名为“ConsumerToken”的模型。模型看起来像这样。

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

当我去“/ oauth_test /叽叽喳喳”,它加载Oauth::Models::Consumers::Token模块,我能够连接到Twitter没有问题。但我第二次尝试(只是刷新/oauth_test/twitter URL),它给了我这个错误:

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' 

这是为什么?它可能与加载路径有关或处于开发模式?

+0

它是否在生产模式下工作? – 2010-07-01 07:42:55

回答

5

尝试使用require_or_load而不是require。每次开发时都会强制满负荷,有时可以帮助解决这类问题。

2

是的,这与处于开发模式有关。在你的development.rb中设置config.cache_classes = true得到它的工作(但是是一个痛苦的屁股)