-1

假设有一个具有电子邮件属性的模型用户。我已经查看了一些我们可以单独使用 self.email 和 email 的教程。那么两者有什么区别呢?

4

2 回答 2

2

如果您在 User 模型中的实例方法中,那么任何一个都可以工作,但email它本身就是一个隐式范围定义 - 这意味着应用程序将查找一个局部email变量,然后是一个电子邮件方法/属性。self.email显式跳过对局部变量的搜索。

于 2013-03-22T11:21:57.550 回答
1

当您在 User 类时,您可以通过不同的方式访问电子邮件。

  • self.email当您在用户范围内时
  • a_user.email当您指定用户时
  • email当您在 User 类中时。这对 User 类中的每个方法都有效。
  • @emailemail,函数返回的变量
  • attributes[:email]ActiveRecord 属性。

所有这些方法都是由 ActiveRecord 模型自动生成的,您可以查看文档了解更多详细信息。

于 2013-03-22T11:27:42.350 回答