[英]First Call to a Controller, Constant is defined, Second call, “uninitialized constant Oauth”?
我正在嘗試使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/twitter
URL),它給了我這個錯誤:
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'
這是為什么? 它與加載路徑有關還是處於開發模式?
嘗試使用require_or_load代替require。 這會在每次開發時強制執行全部負載,有時可以幫助解決此類問題。
是的,這與處於開發模式有關。 在您的development.rb中設置config.cache_classes = true可以正常工作(但是很麻煩)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.