我将 ActiveAdmin 用于 Products
模型。
在我的 ProductsController
我在 update
做一些特殊的魔法从 ActiveAdmin 更新产品时,我也想使用这种方法。为了DRY,我想调用ProductsController.update
来自 ActiveAdmin 的方法。我试过:
controller do
def update
ProductsController.update
end
end
但我得到了一个
NoMethodError in Admin::PoisController#update
.所以显然 ActiveAdmin 的命名空间仍然适用。我如何引用该命名空间之外的 Controller ?
最佳答案
你肯定还在命名空间中。叫它::ProductsController
得到一个全局的。但你还没有完成。
Rails 中的 Controller 操作不是类方法,而是实例方法。您必须实例化 Controller 才能调用操作。你可以试试,但我不认为它会奏效。
我会从原始 ProductsController
中提取逻辑因此可以从两个 Controller 轻松调用它。
关于ruby-on-rails - 如何在 ActiveAdmin 中调用普通 Controller 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8173600/