我有一个名为backend
的命名空间和以下控制器application_controller.rb
:
class Backend::ApplicationController < ApplicationController
end
现在,我从用户控制器继承了该控制器:
class Backend::UserController < Backend::ApplicationController
def index
@users = User.all
end
...
end
对于应用程序控制器的继承,Rubymine向我显示以下错误:
此代码对ruby解释器适用。我该如何教给Rubymine?
我正在使用RubyMine 2018.2.3,并使用Ruby 2.5.1p57。
提前谢谢!
答案 0 :(得分:3)
我猜您应该尝试实际打开模块的正确“纵向”方式。
这两种方法实际上并不等效:
class Backend::ApplicationController < ApplicationController
end
module Backend
class ApplicationController < ::ApplicationController
end
end
由于稍后会正确设置模块嵌套以按预期工作:
module Backend
# this class will inherit from Backend::ApplicationController
# and not ::ApplicationController
class UserController < ApplicationController
end
end
通常应避免使用“命名空间”类的“快捷方式”定义(class Foo::Bar
),因为它会引起不断查找的问题。