ruby-on-rails-3 - Heroku&MongoHQ:ActionView :: Template :: Error(操作:#
MongoID3を使用したRails3アプリが(MongoHQを使用して)Herokuに正常にデプロイされていますが、何かが発生し(正確に何であるかを特定できません)、Heroku
2907 次
1 に答える
20
問題は、認証資格情報が正しくないことです。具体的には、認証しようとしているユーザーが存在しません。
その理由はrake db:reseed
、DB レベルのユーザーを含むすべてのデータが削除されるためです。
例:
➜ skadi git:(master) ✗ mongo
MongoDB shell version: 2.0.7
connecting to: test
> use skadi_development
switched to db skadi_development
> db.system.users.find()
> db.addUser("joe", "passwordForJoe")
{ "n" : 0, "connectionId" : 191, "err" : null, "ok" : 1 }
{
"user" : "joe",
"readOnly" : false,
"pwd" : "dac588613249fe92703afb262ec53b82",
"_id" : ObjectId("5030d5181cefbd2b04a99e30")
}
> db.system.users.find()
{ "_id" : ObjectId("5030d5181cefbd2b04a99e30"), "user" : "joe", "readOnly" : false, "pwd" : "dac588613249fe92703afb262ec53b82" }
> exit
bye
➜ skadi git:(master) ✗ rake db:reseed
➜ skadi git:(master) ✗ mongo
MongoDB shell version: 2.0.7
connecting to: test
> use skadi_development
switched to db skadi_development
> db.system.users.find()
=> Nothing
そのため、データベースに接続しようとすると、資格情報が無効になります。
MongoHQ 管理パネルで確認できます。Heroku にアクセスしてアプリを選択し、リソースをクリックして MongoHQ をクリックすると、それを見つけることができます。次に、[データベース ユーザー] タブをクリックします。
rake db:reseed
以前は期待どおりに動作していましたが、新しいバージョンの mongoid で変更されました。system.* を除くすべてのコレクションを削除するには、rake db:purge
.
その rake タスクは安定版ではまだ利用できないため、マスター ブランチを使用する必要がある場合があります。またはMongoid.purge!
、安定版で動作するコードで使用するだけです。
于 2012-08-19T11:52:38.857 に答える
MongoID3を使用したRails3アプリが(MongoHQを使用して)Herokuに正常にデプロイされていますが、何かが発生し(正確に何であるかを特定できません)、Heroku
2907 次
1 に答える
20
問題は、認証資格情報が正しくないことです。具体的には、認証しようとしているユーザーが存在しません。
その理由はrake db:reseed
、DB レベルのユーザーを含むすべてのデータが削除されるためです。
例:
➜ skadi git:(master) ✗ mongo
MongoDB shell version: 2.0.7
connecting to: test
> use skadi_development
switched to db skadi_development
> db.system.users.find()
> db.addUser("joe", "passwordForJoe")
{ "n" : 0, "connectionId" : 191, "err" : null, "ok" : 1 }
{
"user" : "joe",
"readOnly" : false,
"pwd" : "dac588613249fe92703afb262ec53b82",
"_id" : ObjectId("5030d5181cefbd2b04a99e30")
}
> db.system.users.find()
{ "_id" : ObjectId("5030d5181cefbd2b04a99e30"), "user" : "joe", "readOnly" : false, "pwd" : "dac588613249fe92703afb262ec53b82" }
> exit
bye
➜ skadi git:(master) ✗ rake db:reseed
➜ skadi git:(master) ✗ mongo
MongoDB shell version: 2.0.7
connecting to: test
> use skadi_development
switched to db skadi_development
> db.system.users.find()
=> Nothing
そのため、データベースに接続しようとすると、資格情報が無効になります。
MongoHQ 管理パネルで確認できます。Heroku にアクセスしてアプリを選択し、リソースをクリックして MongoHQ をクリックすると、それを見つけることができます。次に、[データベース ユーザー] タブをクリックします。
rake db:reseed
以前は期待どおりに動作していましたが、新しいバージョンの mongoid で変更されました。system.* を除くすべてのコレクションを削除するには、rake db:purge
.
その rake タスクは安定版ではまだ利用できないため、マスター ブランチを使用する必要がある場合があります。またはMongoid.purge!
、安定版で動作するコードで使用するだけです。
于 2012-08-19T11:52:38.857 に答える