Rails: Crea utente root di default attraverso la migrazione? Rake compito?
-
21-09-2019 - |
Domanda
sto testando il mio app su Heroku (che è F *** ing incredibile!) E ho capito che non ho modo di creare il mio utente root
.
Sto usando Authlogic e rails_authorization_plugin.
C'è qualche modo posso aggiungere una sezione ad uno dei miei file di migrazione per aggiungere questo utente e assegnargli il ruolo di root
? O posso farlo attraverso un task rake?
Tutta la comprensione sarebbe apprezzata!
Soluzione
Certamente potrebbe fare, però una migrazione, e ho visto che come un metodo consigliato per aggiungere i dati di semi necessari alla banca dati di un'applicazione. Le migrazioni sono solo rubino codice, quindi è abbastanza semplice. È possibile utilizzare tutte le cose ActiveRecord si è abituati a e fare qualcosa di simile:
class AddRootUser < ActiveRecord::Migration
def self.up
user = User.create!( :email => '...', :login => 'root', :password => '...' )
end
def self.down
user = User.find_by_login( 'root' )
user.destroy
end
end
Ho lasciato le cose probabilmente che ci si vuole fare come salvare un fallimento per creare l'utente, ecc Inoltre, non ho usato Authlogic quindi non so esattamente come funziona il suo modello di utente, ma si dovrebbe essere in grado di capirlo da qui.
Un altro modello comune è quello di avere la migrazione verso il basso del tutto chiaro il tavolo e hanno la migrazione fino chiamare la migrazione verso il basso prima di eseguire. Che probabilmente non è ciò che si desidera in questo caso, però.
Altri suggerimenti
È possibile impostare un compito rastrello per il bootstrap l'utente (e qualsiasi altro dato di semi). Heroku consente in realtà di eseguire compiti rake: http://docs.heroku.com/rake
In alternativa, come una tantum, è possibile creare l'utente locale e caricare il database per Heroku utilizzando heroku db:push
. Documenti qui: http://docs.heroku.com/taps#import-push -to-Heroku
Inoltre, vi suggerisco contro un dato solo migrazioni. V'è anche un dato compito rastrello seme nel nucleo rotaie. Vedere il Railscast e questo post .