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。。。打字太多了!