2012-04-17 4 views
1

rails framework Hoboは鮮やかで、管理者のユーザとして最初のユーザを自動的に作成します(ユーザに指示しない限り)。私が持っている問題は、開発中のレールを走らせると、パスワードが何であったか覚えていないということです。これは私がちょうどrails consoleを実行するので、些細なことのユーザadmin = User.find :firstを見つけて、パスワードをリセット(しよう)Hobo/Railsのコンソールからユーザパスワードをリセットするには

admin.password = 'Anything1234' 
admin.password_confirmation = admin.password 
admin.save 
>false 
admin.errors 
>{:current_password=>["is not correct"]} 

すなわち必要があります既存のパスワードを変更するには、変数current_passwordを正しく設定する必要があります。

このケースでは、Hoboのドキュメントは役に立ちません。パスワードをリセットするためにHoboユーザーモデルを操作する方法を知っている人はいますか?

答えて

1

4可能な解決策:

1:あなたのアプリケーションを実行し、パスワードを忘れた場合のリンクをクリックして

そのため、あなたはこのような何かをする必要があります。メッセージはログに表示されるので、メーラーを設定する必要はありません。

2:

admin.save(false) 

はEDIT:Railsの3で、これは

admin.save(:validate => false) 

3:別のオプションは、あなたの最初のユーザーを取得するように、すべてのユーザーを削除するだけであるだけで任意の検証を行わずに保存しますエントリー画面戻る。

4:あなたは本当に検証を実行する場合は、request_password_resetのライフサイクルトリガすることができます。

admin.lifecycle.request_password_reset!(Guest.new) 

を、次にリセットパスワードキー

u.lifecycle.reset_password!(Guest.new, :key => 'a0a2db1035065fa7ad5d46d35669d206aee73668', :password=>"test123", :password_confirmation=>"test123") 
+0

ありがとう、私は1を試みた - しかし、リンクは他の理由で動作しませんでした。私が忘れてしまったのは、検証なしでの保存です。 3は私がより良いものがなければ何のために行ったか、4はそれがどのように機能するかについての適切な見解を持つことは素晴らしいことです。 – meesern

+0

この種の問題については、正直なところ#3が私の最も一般的な選択です。私のプロジェクトのほとんどに初期データベースを構築するためのスクリプトがありますので、データベースを削除して再構築します。 –

1

はい、passwordpassword_confirmationフィールドを設定する前に、current_passwordを設定する必要があります。これは、元々パスワードを知らずにユーザーがパスワードを変更するのを止めるためです。

admin.current_password = 'password' 
admin.password = 'Anything1234' 
admin.password_confirmation = admin.password 
admin.save 
+0

ライアンのために開発ログに見て、私はと思いますあなたが現在のパスワードを知らない場合は、新しいパスワードを保存することはできません。問題は何ですか? – meesern

関連する問題