RailsAdmin e ActiveSupport :: Concern

Em vez de jogar a configuração de todos os seus modelos em um rails_admin.rbinicializador gigante , seria melhor organizá-los por contexto. Poderíamos apenas incluir uma rails_adminmacro 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::Concernpara … 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 .