如何在ActiveAdmin中调用普通的控制器方法?

时间:2011-11-17 20:09:59

标签: ruby-on-rails namespaces ruby-on-rails-3.1 activeadmin

我正在使用ActiveAdmin作为Products模型。

在我的ProductsController我正在使用update方法做一些特别的魔术,我希望在从ActiveAdmin更新产品时也会发生这种魔法。为了干,我想从ActiveAdmin调用ProductsController.update方法。我试过了:

controller do
  def update
    ProductsController.update
  end
end

但是我得到了NoMethodError in Admin::PoisController#update。显然,ActiveAdmin的命名空间仍然适用。如何引用该命名空间之外的控制器?

1 个答案:

答案 0 :(得分:2)

你肯定还在名字空间里。称之为::ProductsController以获得全局的。但那时你还没有完成。

Rails中的控制器操作不是类方法,而是实例方法。您必须实例化控制器才能调用操作。你可以尝试一下,但我认为它不会起作用。

我将从原始ProductsController中提取逻辑,以便可以从两个控制器轻松调用它。