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!

È stato utile?

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 .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top