5

我想添加before_action過濾器到ActiveAdmin控制器。爲ActiveAdmin控制器設置過濾器before_action

我可以做這樣的事情:

before_action :set_product, only: [:show, :edit, :update, :destroy] 

private 

def set_product 
    @product = Product.find_by_name(params[:name]) 
end 
+0

你試過了嗎?你有沒有得到任何錯誤?它是否按預期工作?如果是,那麼是的。 – BroiSatse

回答

10

您可以從controller do ... end DSL內訪問控制器:

ActiveAdmin.register User do 

    before_action :set_product, only: [:show, :edit, :update, :destroy] 

    controller do 
    def set_product 
     @product = Product.find_by_name(params[:name]) 
    end 
    end 

end 
+0

它的工作原理!非常感謝! – MikeAndr

+2

對於新版本的activeadmin,'before_filter'應該在控制器塊內。 –

+1

@OscarBarrett不,它適用於最新版本的Active Admin(在撰寫本文時)。 – arogachev