Я хотел бы централизовать аналогичные действия некоторых контроллеров и написать контроллер, от которого наследуются другие контроллеры.Это прекрасно работает.
# calling Configurations#index will render configurations/index.html.erb
# while 'configurations' being the internal controller_path used to look for the view
class ConfigurationsController < EditorController
end
class EditorController < ApplicationController
def index
render 'index'
end
end
Но теперь я хотел бы централизовать представления для базового, так что если вызывается наследующий контроллер, то используется controller_path должно быть базовым контроллером.
Есть ли способ переписать имя контроллера или controller_path?
Я посмотрел на источник AbstractController :: Base и обнаружил, что (строка 90)
def controller_path
@controller_path ||= name.sub(/Controller$/, '').underscore unless anonymous?
end
Так что мне просто нужно установить @controller_path из моего базового контроллера, не так ли?Это ничего не меняет:
#just does the same as above
class EditorController < ApplicationController
@controller_path = 'editor'
def index
render 'index'
end
end
Так есть ли способ установить controller_path вручную?
большое спасибо заранее!