开发者

First Call to a Controller, Constant is defined, Second call, "uninitialized constant Oauth"?

开发者 https://www.devze.com 2022-12-29 10:45 出处:网络
I am trying to get the OAuth gem to work with Rails 3 and I\'m running into this weird problem... (independent of the gem, I think I\'ve run into this once before)

I am trying to get the OAuth gem to work with Rails 3 and I'm running into this weird problem... (independent of the gem, I think I've run into this once before)

I have a controller called "OauthTestController", and a model called "ConsumerToken". The model looks like this.

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

When I go to "/oauth_test/twitter", it loads the Oauth::Models::Consumers::Token module and I'm able to connect to twitter no problem. But the second time I try it (just refresh the /oauth_test/twitter url), it gives me this error:

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'

Why is that? It has something开发者_如何学运维 to do with load paths or being in development mode maybe?


Try using require_or_load instead of require. That forces full load each time when in development and can sometimes help with this sort of issue.


Yeah it's something to do with being in development mode. Setting config.cache_classes = true in your development.rb get's it working (but is a pain in the ass)

0

精彩评论

暂无评论...
验证码 换一张
取 消