gon没有在javascript中定义错误

Rin*_*cke 6 ruby-on-rails ruby-on-rails-3

非常简单的问题.我正在尝试使用gon.我在控制器中设置变量,如下所示:

gon.preference = "hello"
Run Code Online (Sandbox Code Playgroud)

在我的.js.erb文件中,我尝试使用这样的变量:

console.log(gon.preference)
Run Code Online (Sandbox Code Playgroud)

但我得到一个错误,说"gon没有定义".可能是什么问题呢?显然,rails认识到有一个gon变量..js.erb文件位于我的assets/javascripts目录中.我尝试将文件名更改为.js(虽然我没想到这会产生任何影响).显然没有变化.

不知道为什么gon不起作用!

救命?

Rin*_*cke 12

这里很好的答案,但确切地知道发生了什么.我多次渲染没有布局的特定视图.但是,由于我在重新渲染此视图时没有渲染布局,因此application.html.erb中的<%= include_gon %>行无用.

<%= include_gon %>直接放入我正在渲染的视图中,现在一切正常!


Ada*_*hti 6

我发现将其添加到您的标题中会有所帮助。

<%= include_gon(:init => true) %>
Run Code Online (Sandbox Code Playgroud)

也适用于 Rails 4。