10

我试图让 OAuth gem 与 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/twitterurl),它给了我这个错误:

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'

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

4

2 回答 2

5

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

于 2010-07-06T17:11:18.937 回答
2

是的,这与处于开发模式有关。在你的 development.rb 中设置 config.cache_classes = true 让它工作(但很麻烦)

于 2010-06-25T16:24:38.537 回答