RoR AR用户模型

时间:2011-12-23 19:19:37

标签: ruby-on-rails ruby

我正在观看Ruby On Rails Live Lessons视频,作者定义了一个Active Record User模型。在模型中,他将password_confirmation字段作为模型的一部分。这是RoR的标准做法吗?我把它定义为模型的一部分似乎很奇怪......

例如,您不会将电子邮件确认定义为模型的一部分或用户名确认。

这是正常/标准的RoR练习吗?

2 个答案:

答案 0 :(得分:5)

  

添加的password_confirmation属性是虚拟的;它仅作为内存中的属性存在,用于验证密码。为实现此目的,验证会为确认属性的模型添加访问器。

来源:http://api.rubyonrails.org/classes/ActiveModel/Validations/HelperMethods.html#method-i-validates_confirmation_of

答案 1 :(得分:1)

您可以将虚拟属性(仅限内存中的属性。它们不受数据库支持)添加到AR模型。

对于模型的客户端,该属性看起来很真实,但它不存储在数据库中。

在示例中,password_confirmation属性是虚拟的。

请记住,有两种方法可以考虑Rails用户模型:

  1. 用户模型描述数据库中的内容
  2. User模型处理“Users”与Rails应用程序其余部分之间的交互。
  3. Number 2是构建应用程序的首选方式。这是“厚模型,薄控制器”座右铭背后的理念。

    因此,向模型添加虚拟属性以启用从传入表单中大量设置属性通常很有意义。然后,模型的方法适当地使用实数和虚拟属性。