3

<%=password_field 'email_setting','emailpasswd' %>

In this @email_setting.emailpasswd has the value password(@email_setting.emailpasswd="password").

But in email_setting form edit the password text box is loaded with empty.Instead of that I need to show some characters(#######) to indicate that the password is already entered.

I'm using Rails 3.

4

3 に答える 3

2

これは Rails のセキュリティ上の予防策であり、パスワード フィールドは事前に設定されていません。そうしないと、ページ ソースにプレーン テキストで表示されます。

本当にそこに表示したい場合は、フォーム ヘルパーをバイパスし、プレーンな HTML にフォールバックする必要があります。

<input type="password" name="email_setting[emailpasswd]" value="<%= @email_setting.emailpasswd %>" />

ただし、パスワードがハッシュされているとうまくいきません。ハッシュ化されたパスワードを「復号化」することはできないため、ここでは平文で表示することはできません。

于 2012-06-27T08:43:00.593 に答える
2

password_fieldnilデフォルトで値をレンダリングします。これにより、デフォルトでパスワードの使用が安全になります。の値をレンダリングしたい場合は、たとえば、次のpassword_fieldことを行う必要があります

f.password_field(:password, :value => @user.password)

https://github.com/rails/rails/commit/1851af84c1c7244dc416be9c93a4700b70e801e3

于 2013-12-10T03:20:51.500 に答える