Dex*_*Dex 5 cookies ruby-on-rails
我正在尝试在之前的过滤器中为用户位置更改Cookie但遇到问题:
如果cookie不存在,则会正确设置为1,但不会永久保存,并且对于任何后续请求都会恢复为1.
def remember_location(loc = nil)
cookies.permanent[:location] = 1 if cookies[:location].nil?
loc = Location.find(loc).try(:id) rescue nil
unless loc.nil?
# cookies.delete :location # => this doesn't work either
cookies.permanent[:location] = loc
end
cookies[:location]
end
Run Code Online (Sandbox Code Playgroud)
问题就在这里。由于数据库未完全填充,我随后输入的位置给出了 Rails 错误。除非整个端点请求成功完成,否则 cookie 实际上不会被保存。
查看 ActionDispatch::Cookies 的源代码后,情况似乎确实如此: http: //api.rubyonrails.org/classes/ActionDispatch/Cookies.html
| 归档时间: |
|
| 查看次数: |
1504 次 |
| 最近记录: |