Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.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 为什么当前用户也可以通过@current\u user with designe访问?_Ruby On Rails_Ruby_Devise - Fatal编程技术网

Ruby on rails 为什么当前用户也可以通过@current\u user with designe访问?

Ruby on rails 为什么当前用户也可以通过@current\u user with designe访问?,ruby-on-rails,ruby,devise,Ruby On Rails,Ruby,Devise,自述文件没有提到任何关于@current\u user,也没有在我的应用程序的源代码(grep-R“@current\u user”app/)中提到,但我可以在控制器中使用@current\u user。这是为什么呢?当您创建一个设计模型时,比如说User,然后设计会动态地为您生成一个名为current\u User的助手方法。此方法返回实例变量@current\u user的值。通过使用@current\u user您只需直接访问实例变量,而不是通过current\u user方法。所以,您可

自述文件没有提到任何关于
@current\u user
,也没有在我的应用程序的源代码(
grep-R“@current\u user”app/
)中提到,但我可以在控制器中使用
@current\u user
。这是为什么呢?

当您创建一个设计模型时,比如说
User
,然后设计会动态地为您生成一个名为
current\u User
的助手方法。此方法返回实例变量
@current\u user
的值。通过使用
@current\u user
您只需直接访问实例变量,而不是通过
current\u user
方法。所以,您可以看到为什么这些值是相同的

在designe中,
current_#{mapping}
helper方法的实现如下:

      def current_#{mapping}
        @current_#{mapping} ||= warden.authenticate(scope: :#{mapping})
      end
其中,
映射
将替换为您的设计型号名称,在您的情况下,该名称为
用户


请参阅Desive source code中的

您知道每个现有gem、Kirti的所有文档吗?因为每次我看到你的答案,你都会在文档中给出准确的参考资料(顺便说一句,这很好)@Yoshiji先生只是我使用的宝石:DIm好奇你开发了多少应用程序?您似乎对Ruby、Rails和流行的gems有着非常丰富的知识@Yoshiji先生,我是最近从Java转换成Ruby的人。你可以说这是个奇怪的地方。Ruby/Rails中的应用不多,但肯定会朝着这个方向努力。有一天你会回到java吗?我从来都不喜欢Java。。。打字太多了!