【发布时间】:2016-04-02 00:22:38
【问题描述】:
我有一个搜索集合操作,我希望 ActiveAdmin 中的所有资源控制器都可以访问和覆盖该操作。使用以下代码在单个 Active Admin 资源中创建控制器操作很简单:
collection_action :autocomplete_user_last_name, method: :get
def autocomplete_user
term = params[:term]
users = User.where('first_name LIKE ? OR last_name LIKE ? OR email LIKE ?', "%#{term}%", "%#{term}%", "%#{term}%").order(:first_name)
render json: users.map { |user|
{
id: user.id,
label: user.full_name,
value: user.full_name
}
}
end
但是我如何在 ActiveAdmin 基本控制器中创建类似的操作?在 Rails 中,ApplicationController 的行为与我们可以创建路由、操作、辅助方法等的任何其他控制器一样,但是,我只希望此操作的范围为 Active Admin,而不是我的整个应用程序。 ActiveAdmin 中是否有相当于 ApplicationController 的功能?
查看 AA 代码,我发现以下基本控制器是所有资源控制器的超类:
ActiveAdmin::PageController
ActiveAdmin::BaseController
ActiveAdmin::ResourceController
但是,collection 和 member 操作并未在这些类中定义。
【问题讨论】:
标签: ruby-on-rails ruby activeadmin