3
respostas

Organização de arquivos rails (Devise)

Galera,

Eu estou usando o Devise para autenticar Usuários e Admin, então criei dois modelos no devise (ao invés de uma coluna boleana para o admin).

O que acontece é que eu tinha organizado alguns arquivos meus numa pasta admin e desde que criei o modelo no Devise ficou tudo muito confuso.

Segue abaixo um exemplo da confusão:

controllers
    ├── admin
    |     ├── dashboard_controller.rb
    |     └── reports_controller.rb
    |
    └── admins
          └── registrations_controller.rb (custom controller inherit from devise controllers)

  views
    ├── admin
    |     ├── dashboard
    |     |      └───── index.html.erb
    |     |      
    |     └── reports
    |            ├────── new.html.erb
    |            └────── edit.html.erb
    |
    └── admins
          ├── registrations
          ├── sessions
          └ ...

Minhas rotas

devise_for :admins, path: 'admin', path_names: { sign_in: 'login', sign_out: 'logout'}

  authenticate :admin do
    namespace :admin do
      resources   :dashboard,                 only:[:index]
    end
  end

Como sou bem novo em desenvolvimento web / rails eu queria saber qual seria a melhor solução neste caso. Considerando boas práticas, como deveria reorganizar meus arquivos?

3 respostas

Oi Pedro, tudo bom?

Eu mudaria tudo para o mesmo namespace admin mesmo, tanto para as coisas do Devise quanto as suas já que o path do Devise que você está usando também está para admin.

Move as páginas e não se esqueça de mudar as rotas também.

Abraço!

Tudo ótimo =)

Não sei se entendi direito.

Você colocaria tudo dentro da pasta admins ou tudo na pasta admin, certo?

Fiquei com um pouco de receio de misturar as coisas e na hora de atualizar algo criar um conflito com o Devise. Existe esse risco?

Abraço!

Oi Pedro, isso mesmo.

Muito difícil dar este tipo de conflito, mas não é a prova de erros. Por garantia só faz um commit do estado atual antes destas alterações.

Abraço!