0

私はUserモデルを持っています。 Adminモデルから「確認」属性を更新しようとしています。しかし、これを実行している間、すべての属性が再び渡されます。使用されたハッシュのために、これにより再び渡されるパスワードが変更されています。 Michael Hartのチュートリアルのようにモデルを実装し、同じハッシュ技術を使用しました。ユーザーのユーザー名プロパティを調整することができます:あなたは属性がPOSTされたときに、ホワイトリストupdate_attributeがRailsのパスワードを変更しています

attr_accessible :username 

でアクセスしている今だけWICH設定できる管理モデルで

+1

コードを表示してください。管理コントローラから – tsherif

+0

コード: DEFユーザ@ を確認= User.find_all_by_confirmed(偽) 端がDEFユーザー= User.find(paramsは[:ID])@ をconfirm_user user.update_attribute @(:確認し、 true) redirect_to:back end –

+0

あなたの質問を編集し、適切に書式設定されたコードを追加してください。 – tsherif

答えて

1

update_attribute()を使用する代わりに、update_attributeがパスワードを更新するコールバックメソッドを呼び出すため、update_column(:name, value)メソッドを使用します。

1

+0

で質問を更新しました。実際には何も投稿していません。単にupdate_attributeメソッドを使用していますパスワードは既に大量割り当て保護されています。ユーザーモデルのメソッドの認証と暗号化のために変更されています。 –

+0

adminモデルもありません。 –

+0

編集メソッドを使用する際には、http GETリクエストを使用してIDで対応するオブジェクトを取得し、_formが再度レンダリングされ、属性がフォームにロードされ、このレコードを保存/更新します。ボタンは属性を更新するためにhttp POST要求を使用しますが、attr_accesibleを使用すると、このPOST要求の影響を受ける属性をホワイトリストに登録できます。これはまた、大量割り当てからデータベースを保護する方法でもありますが、私の視点では現在の問題とは関係ありません。 – Dennis

関連する問題