2011-09-10 8 views
5

ちょうどHerokuにプッシュし、rails_adminでモデルを追加していくつかのテストを試みました。私がそれをしたとき、私は一般的なエラーページを得ました。私は、ログに入って、このメッセージに気づいた:Herokuコンソールで新しいモデルを作成するときにNoMethodError(nil:NilClassの未定義メソッド `name ')を取得

NoMethodError(nilのための未定義のメソッド `名」:NilClass)

保存しようとしたとき、私はその後、Herokuのコンソールを開き、手動でモデルを追加しようと、同じメッセージを受信しました。

NoMethodError:nilのための未定義のメソッド `名前」:NilClass

ここではモデルです:

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 

これで起きているかもしれないものの任意のアイデア - またはどこを探し始めるには?

私は移行を行い、コンソールで作業しているときにモデルを認識し、その属性であることがわかりました。

ありがとうございます!

答えて

4

変更を実行してdb:migrateを実行するときにHerokuで遅延や何かがあるかどうかはわかりませんが、数時間を費やした後に戻ってrake db:migrateを再度実行しました何もしないようにしてからモデルを作り直してみましたが、問題なく動作しました。

これですべてがうまくいくように見えますが、Herokuでテストする前にもっと長く待つ必要があるとは言えません。

+1

私は 'NoMethodError(nil:NilClassのための未定義のメソッド' relation ')というエラーをherokuに表示しています。最後のマイグレーションが正常に更新されたかどうかを確認するために、 'rake db:migrate'を再実行するというソリューションを試してみました。しかし、エラーは消えていませんでした。 herokuにアプリケーションを再デプロイするには、ファイルの1つにスペースを追加して、それをコミットしてherokuにプッシュアップしました。ちょうどそれは私に「すべて最新」を伝えません。そして、再配置エラーが消えた後。奇妙な!!! – Zeeshan

+1

私はもう一度これでもう一度ビットだった。だから、ヒロクのアプリを再起動するのはやりました。しかし、今私は上のコメントでそれを汚い方法で行う必要はありませんでした。これで 'heroku restart'コマンドでherokuアプリを再起動できます。 – Zeeshan

20

この問題で2回噛まれた後、私は英雄のサポートチームにそれが起こる理由を尋ねました。そして、彼らは答えました:

"rake db:migrateを実行した後、スキーマの情報がプロダクションモードでブート中にキャッシュされるので、スキーマの変更を受け取れるようにアプリケーションを再起動する必要があります。

新しいマイグレーションを実行した後、必ず「heroku restart」を実行してherokuアプリを再起動してください。

関連する問題