从视图中设置cookie,然后从Rails中的Controller读取它

Ada*_*NYC 2 javascript cookies ruby-on-rails

我想使用Javascript在Rails视图中设置cookie值,然后使用Controller来读取此cookie.这可能与Rails有关,我应该怎么做呢?

我的情况:我有一个输入字段(比如地址),当用户第一次访问我的网站时,需要填写该输入字段.然后,用户使用Omniauth登录.我想坚持地址,直到他登录后.

更新:我能够在客户端上添加到document.cookies.但是,cookies ["something"]从Rails结束返回nil.以下是cookie哈希:

#<ActionDispatch::Cookies::CookieJar:0x007 @secret="f4d518c0b2", @set_cookies={}, @delete_cookies={}, @host="localhost", @secure=false, @closed=false, @cookies={"_myapp_session"=>"BAh7Ck==--776b2fcfcd63d3c84d2b1de5327e277499add6d4", "fbsr_1505068851081"=>"mqZeyvoRC"}, @signed=#<ActionDispatch::Cookies::SignedCookieJar:0x007 @parent_jar=#<ActionDispatch::Cookies::CookieJar:0x007fdf...>, @verifier=#<ActiveSupport::MessageVerifier:0x007fdfa34548d8 @secret="f4d518c0b2e9d8", @digest="SHA1", @serializer=Marshal>>>

Kae*_*ros 10

要在javascript中设置cookie,您可以执行以下操作:

document.cookie="something= test";

所以你可以添加一个事件(点击,提交,...)来从输入中获取值,并按照我上面提到的方式创建一个cookie.

在rails中,您可以像这样读取值:

cookies["something"]

如果需要,您还可以指定cookie何时在JavaScript中过期.