10

OAuthgemをRails3で動作させようとしていますが、この奇妙な問題が発生しています...(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に問題なく接続できます。しかし、2回目に(URLを更新するだけで/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'

何故ですか?ロードパスと関係があるのでしょうか、それとも開発モードになっているのでしょうか。

4

2 に答える 2

5

requireの代わりにrequire_or_loadを使用してみてください。これにより、開発中は毎回全負荷がかかり、この種の問題に役立つ場合があります。

于 2010-07-06T17:11:18.937 に答える
2

ええ、それは開発モードにあることと関係があります。development.rbでconfig.cache_classes=trueを設定すると、機能します(ただし、お尻の痛みです)

于 2010-06-25T16:24:38.537 に答える