我有一個搜索集合操作,我想要被ActiveAdmin中的所有資源控制器訪問和覆蓋。這是微不足道的在一個單一的活動管理員資源創建控制器動作用下面的代碼:將路由/操作添加到ActiveAdmin基本控制器之一?
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中,而不是我的整個App。 ActiveAdmin中是否有與ApplicationController等效的功能?
通過AA代碼尋找,我發現了以下的基本控制器,其是所有資源控制器的超類:
ActiveAdmin::PageController
ActiveAdmin::BaseController
ActiveAdmin::ResourceController
然而,collection
和member
動作不這些類中定義的。
謝謝,我試過了。 'collection_action'沒有在該上下文中定義。 –
你說得對。 collection_action在AA DSL中定義。我遇到了這個:https://www.viget.com/articles/8-insanely-useful-activeadmin-customizations,但還沒有想出如何將collection_action混合到模塊中。 –
謝謝你看到了。我剛剛結束了對特定資源的路由/控制器操作的範圍。不知道我現在可以使用AA的API。 –