我如何读取由jquery设置的rails中的cookie

His*_*alv 4 jquery ruby-on-rails-3

我在这样的jquery中设置一个cookie(工作正常,生成cookie):

$(document).ready(function() {
    var consp = $("input[home]").attr("home");
    $("input[name='commit']").click(function() {
        $.cookie('home', consp);
    });
});
Run Code Online (Sandbox Code Playgroud)

在我的控制器中,我试图获得cookie值.所以我正在使用像这样的标准读取cookie

def some_method
    @value = cookies[:home]
end
Run Code Online (Sandbox Code Playgroud)

但是当我输出@value的值时,不会返回任何内容.只有在我使用jquery设置cookie时才会发生这种情况,但是如果我直接通过rails设置cookie(没有jquery)就不会发生这种情况.有没有想过为什么会这样?谢谢

His*_*alv 11

好吧,想出这个:

当我提交表单时,我正在创建此cookie,并且由于mvc架构,rails正在提交创建操作,并在成功重定向时重定向回原始页面.所以我需要这个cookie在所有页面都有效,所以jquery.cookie插件.

解决方案是将path参数传递给这样的混合

$.cookie('the_cookie', 'the_value', { expires: 7, path: '/' });
Run Code Online (Sandbox Code Playgroud)

然后,这允许从所有页面路由中读取cookie.