Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails self.attribute\u name和only attribute\u name之间的差异_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails self.attribute\u name和only attribute\u name之间的差异

Ruby on rails self.attribute\u name和only attribute\u name之间的差异,ruby-on-rails,ruby,Ruby On Rails,Ruby,假设有一个具有email属性的模型用户。 我查了一些教程,我们可以单独使用self.email和email。那么两者的区别是什么呢?如果您在用户模型中的实例方法中,那么两者都可以工作,但是email本身是一个隐式的范围定义-这意味着应用程序将查找本地email变量,然后是email方法/属性self.email明确跳过对局部变量的搜索。当您在用户类上时,您可以通过不同的方式访问电子邮件 self.email当您在用户范围内时 a_user.email当您指定了一个用户时 在用户类中时发送电子邮

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

如果您在用户模型中的实例方法中,那么两者都可以工作,但是
email
本身是一个隐式的范围定义-这意味着应用程序将查找本地
email
变量,然后是email方法/属性
self.email
明确跳过对局部变量的搜索。

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

  • self.email
    当您在用户范围内时
  • a_user.email
    当您指定了一个用户时
  • 在用户类中时发送电子邮件
    。这对用户类中的每个方法都有效
  • @email
    ,由
    email
    函数返回的变量
  • 属性[:email]
    ActiveRecord属性

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

发布一些代码,以便我们了解您的意思。它们在实例方法中都是相同的。请看这篇文章,这里对所有内容进行了解释