每次提到我得到一个警告顶级恒定的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