首先调用控制器,定义常量,第二次调用“未初始化的常量Oauth”?
我试图让OAuthgem与Rails 3一起工作,我遇到了这个奇怪的问题…(独立于gem,我想我之前遇到过这个问题)
我有一个名为“OauthTestController”的控制器,以及一个名为“ConsumerToken”的模型。 模型看起来像这样。
require 'oauth/models/consumers/token' class ConsumerToken < ActiveRecord::Base include Oauth::Models::Consumers::Token end
当我去“/ oauth_test / twitter”时,它会加载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'
这是为什么? 它与加载路径或处于开发模式有关吗?
尝试使用require_or_load而不是require。 每次开发时都会强制满负荷,有时可以帮助解决这类问题。
是的,这与处于开发模式有关。 在您的development.rb中设置config.cache_classes = true得到它的工作(但是这是一个痛苦的屁股)