Em vez de jogar a configuração de todos os seus modelos em um rails_admin.rb
inicializador gigante , seria melhor organizá-los por contexto. Poderíamos apenas incluir uma rails_admin
macro em nossos modelos. Mas, IMHO, não acho que o modelo seja um bom lugar para fazer isso, porque quebra um princípio de design chamado Separation of Concerns (SoC).
Portanto, usaremos o ActiveSupport::Concern
para … separar interesses!
Por exemplo, temos um modelo de categoria.
Criando um ActiveSupport: Módulo de preocupação
# app/models/concerns/rails_admin/category.rb
module RailsAdmin::Category
extend ActiveSupport::Concern
included do
rails_admin do
edit do
# edit fields
end
show do
# show fields
end
list do
# list fields
end
end
end
end
Incluindo a preocupação
# app/models/category.rb
class Category < ActiveRecord::Base
include RailsAdmin::Category
# ...
end
Leia mais sobre ActiveSupport::Concern
aqui .