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.