我一直在http://rails-4-0.railstutorial.org/book/工作,我对cookies
的工作原理感到困惑。
我完全清楚浏览器中的Cookie是什么等等。我不确定它们是如何实现的。
在示例中,有sessions_helper
处理登录等。这就是使用Cookie的地方。它似乎不在任何特定对象内(除非假定session_helper中定义的所有函数都被添加到Sessions类中?)。 Cookie实际上从未声明过。它从未明确要求,或任何东西。那么,谁拥有它?它的范围是什么?在哪里初始化?它是什么类型的?
答案 0 :(得分:0)
在“在互联网上获得答案,提出索赔,看看谁纠正你”的前提下,这是我到目前为止所得到的:
从luisenrike提供的链接看来,cookies对象是在ActionController中声明的,ActionController是ApplicationController的超类,它是所有实际控制器的超类。因此,当(在本例中)SessionsController初始化时,它被声明并初始化。
第一个问题是我不太确定的问题。看来,sessions_helper中的所有函数都被自动假定为SessionsController中的方法。
因此,我可以在sessions_helper.rb中使用cookies对象的原因是sessions_helper中的方法属于SessionsController对象的范围,该对象通过继承是一个定义cookie的ActionController。
编辑添加: 不,看起来SessionsHelper手动包含在ApplicationController中。因此,在这种情况下,每个应用程序控制器都可以访问这些功能...... 虽然看起来确实在GENERAL中FooHelper被FooController和Foo Views加载......