1

RailsフレームワークHoboは素晴らしく、管理者ユーザーとして最初のユーザーを自動的に作成します(そうしないように要求しない限り)。私が抱えている問題は、開発中のRailsを実行しているときに、パスワードが何であったかを思い出せないことです。rails console実行し、ユーザーadmin = User.find :firstを見つけてパスワードをリセットするだけなので、これは簡単なはずです(試してみてください)

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

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

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

4

2 に答える 2

1

はい、フィールドとフィールドcurrent_passwordを設定する前に、を設定する必要があります。これは、ユーザーが最初にパスワードを知らなくてもパスワードを変更できないようにするためです。passwordpassword_confirmation

したがって、次のようなことを行う必要があります。

admin.current_password = 'password'
admin.password = 'Anything1234'
admin.password_confirmation = admin.password
admin.save
于 2012-04-17T14:45:21.030 に答える
1

4つの可能な解決策:

1:アプリを実行し、パスワードを忘れた場合のリンクをクリックします。メッセージはログに表示されるため、メーラーを設定する必要はありません。

2:検証を行わずに保存するだけです。

admin.save(false)

編集:Rails3ではこれは

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")
于 2012-04-17T18:57:19.090 に答える