jpw*_*ynn 2 cookies ruby-on-rails
一个如何访问Rails模型或助手中的cookie?
为了弄干某些控制器方法,我试图将对cookie()的多个控制器调用移到application_helper.rb和/或模型中。
在application_helper.rb中什么不起作用:
cookies[:foo]
ActionDispatch::Cookies.cookies[:foo]
ActionController.cookies[:foo]
ActionDispatch::Cookies::ChainedCookieJars.cookie[:foo]
Run Code Online (Sandbox Code Playgroud)
所有这些都会导致未定义的方法“ cookies”
注意:只是在反省MVC教义的好意的答案在这里错了地方……我已经设计了足够长的时间(数十年),以了解何时在MVC线之外进行着色(如果可能)是更好的方法。但是即使在深入了解Rails源代码之后,精确的语法仍使我难以理解。这个问题是由某种复杂情况引起的,这种情况尤其涉及跨域ajax环境中浏览器对Cookie的不一致处理,该环境有时包括本地文件(Chrome拒绝管理cookie)。
这不是一个好主意:)模型是类,它们不应该知道Web级别上正在发生的事情,这就是为什么cookies在中实现method 的原因ActionController,但在ActionModel或中没有这样的实现ActionHelper。如果您需要模型中的cookie值,则从控制器传递一个值。这是应该做的。
| 归档时间: |
|
| 查看次数: |
1587 次 |
| 最近记录: |