Adding a back-end with Active Admin
Created by Rasmus Kjellberg
This guide assumes that you have already built a Rails Girls app by following the app development guide.
Active Admin is a Ruby on Rails plugin for generating administration style interfaces. It abstracts common business application patterns to make it simple for developers to implement beautiful and elegant interfaces with very little effort. You can read more about Active Admin here.
Adicionando a gem “Active Admin”
Abra seu Gemfile
e adicione as seguintes linhas
e rode
para instalar as gems.
Depois de atualizar sem bundle, rode o instalador
O instalador cria um inicializador utilizado para configurar os padrões utilizados pelo Active Admin e uma nova pasta em app/admin
para colocar todas as suas configrações de administrador.
Migre seu banco e inicie o servidor:
Criando sua primeira conta de administrador
Abra o Rails console e crie seu novo usuário utilizando o model AdminUser
:
Você deverá ver alguma coisa como:
Você pode sair da sessão do console com um simples comando exit
:
Acessando seu painel de administrador
Visite http://localhost:3000/admin e faça login utilizando suas credenciais.
Voila! Você está no seu novo painel de controle do Active Admin.
Adicione “Ideas” ao back-end
Para registrar seu model Ideia
com Active Admin, rode:
Atualize sua página de admin e você encontrará Ideias na navegação.
Você pode substituir “Ideia” por qualquer model que você quiser registrar com o Active Admin.
Setting up Strong Parameters
Para prevenir a exceção ActiveModel::ForbiddenAttributesError in Admin::IdeasController#update ao atualizar o model, você tem que utilizar o método permit_params para definir quais atributos podem ter sido alterados:
Abra seu arquivo app/admin/ideia.rb
e adicione :nome
, :descricao
e :imagem
ao permit_params
:
Remova “new”, “edit” e “destroy” para usuários.
Se você não quer que usuários não administradores atualize suas ideias, você pode facilmente consertar isso atualizando seu arquivo de todas para permitir apenas “index” e “show”. Adicione only: [:show, :index]
ao config/route.rb
:
Não se esqueça de remover os links agora quebrados, do seu código front-end, como: <%= link_to 'Nova Ideia', new_ideia_path %>
, <%= link_to 'Editar', edit_idea_path(ideia) %>
, <%= link_to 'Excluir', ideia, method: :delete, data: { confirm: 'Você tem certeza?' } %>
Voila! Você pode agora gerenciar uas ideias do seu novo painel de administrador!
E agora?
- Adicione outro recurso ao admin como Blog e Comentarios