每次提到我得到一個警告頂級恆定的ApplicationController鐵軌對我的要求是什麼?有什麼麻煩?Rails3中:警告:
相同的情況與其他控制器
class Agency::ClientsController < Agency::ApplicationController
...
end
而且沒有警告,沒有錯誤...
每次提到我得到一個警告頂級恆定的ApplicationController鐵軌對我的要求是什麼?有什麼麻煩?Rails3中:警告:
相同的情況與其他控制器
class Agency::ClientsController < Agency::ApplicationController
...
end
而且沒有警告,沒有錯誤...
ApplicationController
是Rails的,當你創建一個新的項目,所有爲您生成的超類控制器的名稱你的其他控制器類繼承自。可能有衝突的地方,因爲你已經使用了相同的名字,即使你把它放在一個命名空間中。
嘗試給你的Agency::ApplicationController
一個不同的名字。
在設置Spork
和Watchr
後,我有類似的問題。在這個過程中,我關閉了類緩存(config_cache_classes => false
在config/environments/test.rb
),以便在spork環境中根據需要重新加載更改。轉向類緩存back on
使警告消失。
我在我的Admin
名稱空間控制器中運行Spork
和Watchr
時遇到類似問題。所以我加入以下代碼spec_helper.rb
固定到這個each_run
塊:
Dir[File.expand_path("app/controllers/admin/*.rb")].each do |file|
require file
end
所有學分去guy from this thread
謝謝,這已經解決了這個問題。 – 2012-01-10 10:22:41
感謝這工作得很好,爲簡潔起見,我修改了一下:Dir [Rails.root.join(「app/controllers/admin/* .rb」)]。each {| f |需要f} – 2012-02-02 09:36:06
幾小時後我的頭撞了..這解決了我的問題..好,我注意到警告和好,我發現這個答案..非常感謝。 – whizcreed 2012-07-18 13:15:40
對我而言,這是Devise的問題。我有一個設計模型管理員和命名空間路由管理員。將名稱空間路由更改爲管理員解決了問題。
解決方案對我來說是加入這一行:
# spec/rails_helper.rb
Dir[File.expand_path("app/controllers/admin/*.rb")].each { |file| require file }
但是,爲什麼沒有與出售:: ClientsController沒有煩惱? – petRUShka 2010-07-07 11:35:11
因爲ClientsController對Rails沒有特殊的含義。 – 2010-07-07 12:32:34
我有一個功能Admin :: ApplicationController,它不會產生問題。所以重命名不應該被要求。調用堆棧中的其他地方可能存在歧義,Ruby對此抱怨。 – 2012-01-04 15:54:37