簡體   English   中英

第一次調用控制器,定義了常量,第二次調用,“未初始化的常量Oauth”?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM