我正在尝试使用gon和rails 4,但它似乎根本不起作用。
在application.html.erb中我有
<%= include_gon(:init => true) %>
我尝试过使用和不使用init语句,并尝试将其置于我的控制器视图中
在我的控制器中我有
gon.item_status = "delivered"
respond_to do |format|
format.json { render json: item, location: item }
end
在我的咖啡脚本中我有
$ ->
$("a[data-remote]").on "ajax:success", (e, data, status, xhr) ->
console.log(item_status)
在控制台中,我看到未定义,在窗口源代码中,我看到以下内容:
//<![CDATA[
window.gon={};
//]]>
所以我可以看到gon已经加载并且正在尝试获取变量,但没有任何东西被传递给它。我的控制器代码是否存在问题,或者rails 4存在更广泛的问题吗?
答案 0 :(得分:1)
您需要使用gon对象访问JS中的gon变量 - 例如gon.item_status
对于AJAX请求,您需要使用gon.watch“监视”gon数组,它不会自动使用AJAX请求更新head标记中的JS。
请参阅gem主页: