2010-05-09 23 views
9

Estoy tratando de hacer que la gema OAuth funcione con Rails 3 y me encuentro con este extraño problema ... (independientemente de la gema, creo que me he encontrado con esto una vez)Primera llamada a un controlador, se define constante, Segunda llamada, "Oauth constante no inicializada"?

Tengo un controlador llamado "OauthTestController" y un modelo llamado "ConsumerToken". El modelo se ve así.

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

Cuando voy a "/ oauth_test/gorjeo", se carga el módulo Oauth::Models::Consumers::Token y soy capaz de conectarse a twitter ningún problema. Pero la segunda vez que lo intento (simplemente actualizar la URL /oauth_test/twitter), me da este 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' 

¿Por qué? Tiene algo que ver con las rutas de carga o estar en modo de desarrollo tal vez?

+0

¿Funciona en modo de producción? –

Respuesta

5

Pruebe usar require_or_load en lugar de require. Eso fuerza la carga completa cada vez que está en desarrollo y a veces puede ayudar con este tipo de problema.

2

Sí, tiene algo que ver con estar en modo de desarrollo. Configurando config.cache_classes = verdadero en su desarrollo.rb, consígalo funcionando (pero es un dolor en el trasero)

Cuestiones relacionadas