我需要需要原始文件从Rails的引擎重写控制器是什么时候?
-
22-07-2019 - |
题
我试图覆盖由一个Rails引擎中定义的控制器的动作。
好像我需要导入原始文件重新打开类,像这样前:
require File.join(RAILS_ROOT, 'vendor/plugins/myplugin/app/controllers/some_controller')
class SomeController
def index
render :text => 'this is my index'
end
end
这是有道理的,但需要相当难看。是否有某种神奇的Rails,让我避免了最初的要求?
解决方案
这是一个完整的猜测...
似乎更负载定时问题。正如,你的文件是越来越插件之前加载。哪里是你的行动在什么位置?配置/初始化? LIB?
我不知道什么时候Rails的发动机被加载所以玩的位置(应该把它放在LIB工作)。
或者,更好的是,在插件创建自己与变化,并确保原后装入。
和你可能想要的东西更像是:
SomeController.class_eval do
def index
...
end
end
不隶属于 StackOverflow