2010-05-09 19 views
9

Tôi đang cố gắng để đá quý OAuth hoạt động với Rails 3 và tôi đang gặp phải vấn đề lạ này ... (độc lập với đá quý, tôi nghĩ rằng tôi đã từng gặp phải điều này một lần)Cuộc gọi đầu tiên tới Bộ điều khiển, Hằng số được xác định, Cuộc gọi thứ hai, "hằng số không đổi Oauth"?

Tôi có một bộ điều khiển được gọi là "OauthTestController", và một mô hình gọi là "ConsumerToken". Mô hình trông như thế này.

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

Khi tôi đi đến "/ oauth_test/twitter", nó tải các module Oauth::Models::Consumers::Token và tôi có thể kết nối đến twitter không có vấn đề. Nhưng lần thứ hai tôi thử nó (chỉ cần làm mới địa chỉ /oauth_test/twitter), nó cho tôi lỗi này:

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' 

Tại sao lại như vậy? Nó có cái gì để làm với đường dẫn tải hoặc đang ở trong chế độ phát triển có thể?

+0

Sản phẩm có hoạt động ở chế độ sản xuất không? –

Trả lời

5

Hãy thử sử dụng require_or_load thay vì yêu cầu. Điều đó buộc tải đầy đủ mỗi khi phát triển và đôi khi có thể giúp loại vấn đề này.

2

Vâng đó là điều cần làm khi ở chế độ phát triển. Thiết lập config.cache_classes = true trong development.rb của bạn nhận được nó làm việc (nhưng là một nỗi đau trong ass)

Các vấn đề liên quan