2011-09-10 17 views
5

Ho appena fatto una spinta a Heroku e ho provato a fare dei test aggiungendo un modello tramite rails_admin. Quando l'ho fatto ho ricevuto una pagina di errore generica. Sono entrato in registri e notato questo messaggio:Ottenere NoMethodError (metodo non definito `nome 'per nil: NilClass) durante la creazione di un nuovo modello nella console di Heroku

NoMethodError (metodo non definito `nome' per nil: NilClass)

Poi ho aperto console Heroku e provato ad aggiungere manualmente il modello e ha ricevuto lo stesso messaggio quando si tenta di salvare .

NoMethodError: undefined metodo `nome' per nil: NilClass

Ecco il modello:

class Board < ActiveRecord::Base 
    attr_accessible :name, :description 

    validates :name, :presence => true 
    validates :description, :presence => true 
    validates_uniqueness_of :name, :case_sensitive => false 

    has_many :subjects 
    scope :hidden, where(:is_hidden => true) 
    scope :visible, where(:is_hidden => false) 
end 

Tutte le idee ciò che potrebbe accadere con questo - o dove iniziare a cercare?

Ho eseguito la migrazione e sono riuscito a vedere che riconosceva il modello e gli attributi durante il funzionamento nella console.

Grazie!

risposta

4

Non sono sicuro se c'è un ritardo o qualcosa con Heroku quando si inseriscono i cambiamenti e si esegue db: migrare ma dopo aver trascorso alcune ore in giro, sono tornato, ho eseguito rake db: migriamo di nuovo, che è apparso per non fare nulla e poi ho provato a creare nuovamente il modello e ha funzionato senza problemi.

Quindi tutto sembra bene ora, ma non posso dire che ho solo dovuto aspettare più tempo prima di testare con Heroku - o se eseguire nuovamente la migrazione effettivamente ha fatto qualcosa.

+1

Ho ottenuto l'errore 'NoMethodError (metodo non definito' relazione 'per nil: NilClass) 'su heroku apparentemente senza motivo. Ho provato la tua soluzione di riesecuzione di 'rake db: migrate' per vedere se l'ultima migrazione è stata correttamente aggiornata e non ha prodotto alcun significato, non c'era nulla di sbagliato nell'ultima migrazione di esecuzione. Ma l'errore non è andato via. Per ri-distribuire l'app su heroku ho appena aggiunto spazio in uno dei file, l'ho commesso e l'ho inserito su heroku - solo così non mi dirà che "Tutto aggiornato". E dopo che l'errore di re-deployment è scomparso. Strano!!! – Zeeshan

+1

Oggi sono stato un po 'di questo. Quindi riavviare l'app di heroku ha funzionato. Ma ora non ho dovuto farlo nel modo sbagliato nel commento subito sopra. Ora puoi riavviare l'app di heroku con il comando 'heroku restart'. – Zeeshan

20

Dopo essere stato morso da questo problema due volte, ho chiesto al team di supporto di heroku il motivo per cui si verificava. E hanno risposto:

"dopo aver eseguito rake db: migrate, è necessario riavviare l'applicazione in modo che possa raccogliere le modifiche dello schema, poiché le informazioni sullo schema vengono memorizzate nella cache durante l'avvio in modalità di produzione."

Ricordarsi sempre di riavviare l'app di heroku da "heroku restart" dopo aver eseguito una nuova migrazione.

Problemi correlati