0

在这一点上,我被困在 Ruby on Rails 教程中。我浏览了has_secure_password类定义,但我无法弄清楚password=被调用的方法是在应用程序的哪个部分?我没有在我们教程的任何地方明确调用它,但是当我输入时:

User.create{blah blah} 

进入 Rails 控制台,它会自动加密密码并将其添加到password_digest列中!

由于方法名称的登录,我一直无法谷歌=,所以请在这里帮助我。

4

1 回答 1

2

您的相关行是:

@user = User.new(name: "Example User", email: "user@example.com", 
             password: "foobar", password_confirmation: "foobar")

当 ActiveRecord 模型类接收newcreate带有选项散列时,它们会将散列键转换为方法名称并调用#{method_name}=新生成的模型。

这允许控制器模式(或反模式,具体取决于您的视图)

User.new(params) 
于 2012-04-12T15:43:41.530 回答