How to hide Add new option in Rails Admin

2019-03-15 20:13发布

问题:

I am customizing Rails Admin : https://github.com/sferik/rails_admin , i need to disable/hide "Add new" option for some model.

Any help will save lot time for me. Thanks in advance

回答1:

I use the following to achieve this on a specific model. Hopefully, this helps:

config.actions do
  new do
    except ['Some Model']
  end
end


回答2:

The answer is in the configuration documentation for actions. By default, all actions are possible, including new. To customize the possible actions, in config.actions in config/initilizers/rails_admin.rb, list all the actions you want to support, leaving out the ones you don’t want to support. For example, here is a config block that allows all of the default actions except for new:

# config/initilizers/rails_admin.rb
RailsAdmin.config do |config|
  config.actions do
    # root actions
    dashboard
    # collection actions 
    index
    # `new` is NOT allowed
    export
    history_index
    bulk_delete
    # member actions
    show
    edit
    delete
    history_show
    show_in_app
  end
end


回答3:

To have multiple models you must put each model in single quotes:

For example consider the following configuration:

config.actions do
  dashboard
  index do
    except ['Address']
  end
  new do
    except ['Address'', 'Employee'', 'Setting',]
  end
  export
  show
  edit do
    except ['Employee']
  end
end

This means that:

  • Addresses are not included on the navbar on the left
  • You cannot add a new address employee or setting with the "add new" button
  • There is no pencil icon in the index view for Employees for editing.
  • If you had a User model you could see it in the navbar, edit it, and add a new one on the index page.
  • You can export every model, but not bulk delete them.


回答4:

Implemented it with Cancan. You can refer to above answer to do it in rails admin way.

URL : https://github.com/sferik/rails_admin/wiki/CanCan