如何隐藏在Rails管理员中添加新选项

时间:2013-08-12 15:45:44

标签: ruby-on-rails ruby-on-rails-3 rails-admin

我正在自定义Rails管理员:https://github.com/sferik/rails_admin,我需要为某些模型禁用/隐藏“添加新”选项。

enter image description here

任何帮助都会为我节省很多时间。提前致谢

4 个答案:

答案 0 :(得分:24)

我使用以下内容在特定模型上实现此目的。希望这有助于:

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

答案 1 :(得分:3)

答案在configuration documentation for actions。默认情况下,所有操作都是可能的,包括new。要自定义可能的操作,请在config.actions config/initilizers/rails_admin.rb中列出您要支持的所有操作,而忽略您不想支持的操作。例如,这是一个配置块,允许除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

答案 2 :(得分:0)

要拥有多个模型,必须将每个模型用单引号引起来

例如,考虑以下配置:

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

这意味着:

  • 地址不包含在左侧导航栏中
  • 您无法使用“添加新”按钮添加新的地址员工或设置
  • 索引视图中没有铅笔图标供员工编辑。
  • 如果您有一个User模型,则可以在导航栏中看到它,对其进行编辑,然后在索引页面上添加一个新模型。
  • 您可以导出每个模型,但不能批量删除它们。

答案 3 :(得分:-3)

使用Cancan实现它。您可以参考上面的答案,以rails admin方式进行。

网址:https://github.com/sferik/rails_admin/wiki/CanCan