为ActiveAdmin控制器设置过滤器before_action

Mik*_*nov 6 ruby ruby-on-rails ruby-on-rails-3 activeadmin ruby-on-rails-4

我想在ActiveAdmin控制器中添加before_action过滤器.

我可以这样做:

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

private

def set_product
  @product = Product.find_by_name(params[:name])
end
Run Code Online (Sandbox Code Playgroud)

sea*_*ley 17

您可以从controller do ... endDSL中访问控制器:

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
Run Code Online (Sandbox Code Playgroud)

  • 对于较新版本的activeadmin,`before_filter`应位于控制器块内. (3认同)