Creazione di un backend API - PARTE 3 -
Creazione di una dashboard separata
Adesso invece di utilizzare la stessa app per creare una dashboard per gli amministratori, ne faremo una nuova che accede allo stesso database. In generale faremo come nello schema seguente:
Primo Step
Creo la nuova applicazione:
$ rails g new dashboard
Nella configurazione per il database:
Apriamo il file database.yml e facciamo puntare la configurazione verso il database che è stato usato per creare l’applicazione API nella parte 1 e parte 2.
Se il database fosse un sqlite3 basta fare un link al file del database originale.
$ ln -s [path development.sqlite3] [db/development.sqlite3]
Secondo Step
Modifichiamo il Gemfile:
gem "administrate"
Salva e eseguiamo : bundle install Link alla guida ufficiale per la configurazione di administrate
Ora prima di creare la configurazione di administrate bisogna predisporre i modelli che devono essere controllati dalla dashboard.
Nel nostro caso per ora abbiamo Post e User, quindi:
$ rails generate model Post --skip-migration
$ rails generate model User --skip-migration
Attenzione: Abbiamo aggiunto –skip-migration perchè questi modelli esistono già e non è necessario ricrearli.
Ora possiamo proseguire la configurazione di administrate:
$ rails generate administrate:install
Nel file routes.rb dovrebbe esserci una cosa del genere:
Rails.application.routes.draw do
namespace :admin do
resources :users
resources :posts
root to: "users#index"
end
end
Se dovessimo aggiungere altri modelli successivamente basta eseguire:
$ rails generate administrate:dashboard [NUOVO MODEL]
e modificare il routes.rb file aggiungendo la nuova risorsa.
Adesso basta eseguire il server:
$ bundle exec rails server
Aprire il broswer su: http://localhost:3000/admin/
Dovreste vedere la nuova dashboard pronta all’uso.
Per il resto delle configurazioni vi rimando alla guida ufficiale.administrate
Conclusione
Dopo aver aggiunto la dashboard adesso aggiungeremo l’autenticazione, ma questa volta usando una gemma diversa da “devise” in modo anche da vedere qualcosa di diverso dal solito.