第一次调用控制器,定义常量,第二次调用"未初始化的常量Oauth"?

Lan*_*ard 10 module ruby-on-rails controllers uninitialized-constant

我试图让OAuth gem与Rails 3一起工作,我遇到了这个奇怪的问题......(独立于gem,我想我之前遇到过这个问题)

我有一个名为"OauthTestController"的控制器,以及一个名为"ConsumerToken"的模型.模型看起来像这样.

require 'oauth/models/consumers/token'
class ConsumerToken < ActiveRecord::Base
  include Oauth::Models::Consumers::Token
end
Run Code Online (Sandbox Code Playgroud)

当我去"/ oauth_test/twitter"时,它会加载Oauth::Models::Consumers::Token模块,我可以连接到twitter没问题.但是我第二次尝试它(只是刷新/oauth_test/twitter网址),它给了我这个错误:

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'
Run Code Online (Sandbox Code Playgroud)

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

小智 5

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