我正在使用ActiveAdmin作为Products
模型。
在我的ProductsController
我正在使用update
方法做一些特别的魔术,我希望在从ActiveAdmin更新产品时也会发生这种魔法。为了干,我想从ActiveAdmin调用ProductsController.update
方法。我试过了:
controller do
def update
ProductsController.update
end
end
但是我得到了NoMethodError in Admin::PoisController#update
。显然,ActiveAdmin的命名空间仍然适用。如何引用该命名空间之外的控制器?
答案 0 :(得分:2)
你肯定还在名字空间里。称之为::ProductsController
以获得全局的。但那时你还没有完成。
Rails中的控制器操作不是类方法,而是实例方法。您必须实例化控制器才能调用操作。你可以尝试一下,但我认为它不会起作用。
我将从原始ProductsController
中提取逻辑,以便可以从两个控制器轻松调用它。