很简单的问题。我在试着使用gon。我在控制器中设置变量,如下所示:
gon.preference = "hello"在我的.js.erb文件中,我尝试这样使用变量:
console.log(gon.preference)但是我得到了一个错误,说“没有定义gon”。可能的问题是什么?显然,rails可以识别出有一个gon变量。.js.erb文件位于我的assets/javascripts目录中。我尝试将文件名改为.js (尽管我并不认为这会有什么不同)。显然没有变化。
不知道为什么gon不能工作!
帮助?
发布于 2013-07-03 03:20:37
这里的答案很好,但却弄清楚了到底是怎么回事。我在没有布局的情况下多次渲染特定视图。但是,因为我在重新呈现这个视图时没有呈现布局,所以application.html.erb中的<%= include_gon %>行是无用的。
我将<%= include_gon %>直接放入我正在渲染的视图中,现在一切都正常了!
发布于 2015-02-25 20:13:52
我发现把这个加到你的头上会很有帮助。
<%= include_gon(:init => true) %>同样适用于Rails4。
发布于 2013-06-29 01:49:21
我创建了一个测试项目来尝试查看我是否有相同的问题,我做到了!
解决方案在application.html.erb中的标头中添加标记<%= include_gon %>
app/views/layouts/application.html.erb<!DOCTYPE html>
<html>
<head>
<title>Test</title>
<%= include_gon %>
<%= stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => true %>
<%= javascript_include_tag "application", "data-turbolinks-track" => true %>
<%= csrf_meta_tags %>
</head>在视图中:
console.log(gon.preference)在控制器中:
gon.preference = "hello"输出:

阅读更多here
https://stackoverflow.com/questions/17369063
复制相似问题