2012-04-12 2 views
0

Я застрял в учебнике Ruby on Rails по адресу this point. Я прошел определение класса 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

Смежные вопросы