在 Rails 3 中,将数据存储在 cookie 中与将数据存储在 session 中( session 存储设置为默认的 CookieStore)有什么区别?
例如
cookie[:foo] = 'bar'
# MyApp::Application.config.session_store :cookie_store, key: '_myapp_session'
session[:foo] = 'bar'
据我所知,两者最终都存储在客户端 cookie 中。
您什么时候会选择使用其中一种而不是另一种?
谢谢。
最佳答案
Rails 3 中的主要区别在于,当您使用 cookie[:foo] = 'bar'
时,用户能够看到 cookie 的值,即 'bar '
。当您使用 session[:foo] = 'bar'
时,该值将由 Rails 加密并存储在 _myapp_session
Cookie 中。
当您要存储的信息未绑定(bind)到 session 时,您可以使用 cookie[]
格式,例如当用户选择首选语言时。
当您想要存储与当前 session 相关的信息时,例如,您可以使用 session[]
格式。用户的id
。
关于ruby-on-rails - Cookie 与 CookieStore 的 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15022497/