设置具有只读访问权限的管理表

问题描述 投票:0回答:1

我正在使用带有rails_admin的Rails服务器

我想向我的include_models添加一个表,但是我不想让对其中一个/几个模型的写访问权:

我的管理员看起来像这样:

# frozen_string_literal: true

RailsAdmin.config do |config|
  ### Popular gems integration

  # == Devise ==
  config.authenticate_with do
    warden.authenticate! scope: :user
  end
  config.actions do
    dashboard                     # mandatory
    index                         # mandatory
    new
    export
    bulk_delete
    show
    edit
    delete
    show_in_app

  end

  config.included_models = %w[ MyModel1
                               MyModel2]
end

我想添加类似内容

config.read_only_models =  %w[MyModel3, MyModel4]

有任何建议吗?

ruby-on-rails rails-admin
1个回答
0
投票

这可以通过为模型添加readonly?方法来实现。如果将值设置为true,则尝试更新记录将导致错误。有关更多详细信息,请参见here

def readonly?
  true
end

ActiveRecord的基础持久性将在创建或更新任何记录之前检查readonly?

您当然可以添加动态内容检查,例如:

def readonly?
  read_only_list.include? (self.class.name)
end
© www.soinside.com 2019 - 2024. All rights reserved.