2012-04-12 3 views
0

私はthisポイントでRuby on Railsチュートリアルに固執しています。私はhas_secure_passwordクラス定義を調べましたが、アプリケーションのどの部分がpassword=メソッドが呼び出されているのかわかりません。私が入力したとき、私はどこでも私たちのチュートリアルで明示的に呼び出すが、しませんでした:私のアプリケーションで "password ="メソッドが呼び出される場所はどこですか?

User.create{blah blah} 

Railsのコンソールにそれが自動的にパスワードを暗号化し、password_digest列に追加します!

メソッド名に=という記号が表示されているので、私はこのことができませんでしたので、ここで助けてください。

答えて

2

あなたの該当する行は次のようになります。

@user = User.new(name: "Example User", email: "[email protected]", 
      password: "foobar", password_confirmation: "foobar") 

ActiveRecordのモデルクラスは、オプションのハッシュをnewまたはcreateを受信した場合、彼らはメソッド名にハッシュキーを変換し、新しく生成されたモデルに#{method_name}=を呼び出します。

これは

User.new(params) 
+0

ああ、私はそれを考え出したことができませんでした(あなたのビューに応じて、またはアンチパターン)コントローラパターンのために自分ができます! ありがとう:) – viswa

関連する問題