如何使用刺激来修复“未定义Cookie”

时间:2019-12-19 23:11:16

标签: javascript ruby-on-rails ruby cookies stimulusjs

我有一个使用Ruby 2.5.3并使用Stimulus 1.1.1框架的Rails v5.2.4应用程序。我在Rails控制器中设置了一些cookie,并从Stimulus控制器访问它们,但是当我第一次加载页面时,我得到了:

ReferenceError: Cookies is not defined
    at Controller.connect (summary_controller.js:92)
    at Context.connect (context.js:23)

但是当我重新加载同一页面时,我得到了cookie值,并且一切正常。我没有使用任何宝石来处理Cookie。

具有相应行号的stimulusjs方法是:

91  connect(){
92    var tech_and_monitor = Cookies.get('tech_and_monitor');
93    var tech_only = Cookies.get('tech_only');
95    var manager_only = Cookies.get('manager_only');
96    }

在第一次加载时,当我在浏览器Cookies.get('tech_and_monitor');上使用实时表达式时,我得到了cookie值。

我不明白为什么我在第一次加载时没有得到Cookies的引用,而在第二次加载时却得到它的原因?

1 个答案:

答案 0 :(得分:0)

我发现负责在Rails应用程序中不加载JavaScript的是Turbolinks。因此,我在调用它的按钮中禁用了Turbolinks,并且也第一次加载了JavaScript。

 <%= link_to "More Page", more_page_path, data:{turbolinks: false}, class: "nav-item nav-link"%>