2016-03-03 92 views
2

我似乎無法得到使用rails 4.2.0的gon gem。我得到「未定義的局部變量或方法'坤'爲」我是否正確使用它?我的佈局application.html.erb的頭文件中也有<%= include_gon(:init => true)%>。未定義的局部變量或方法'gon'for ApplicationController:Class in rails 4.2

的ApplicationController

class ApplicationController < ActionController::Base 
    gon.current_user_rolename = current_user.role.name 
    end 

的application.js

if(gon.current_user_rolename == 'Admin'){ 
    alert('success'); 
    } 

Application.html.erb

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
    <%= include_gon(:init => true) %> 
    <%= Gon::Base.render_data({}) %> 
    <!-- Main css styles --> 
    <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %> 
    <!-- Main javascript files --> 
    <%= javascript_include_tag 'application', "http://localhost:9292/faye.js", 'data-turbolinks-track' => true %>  
    <%= csrf_meta_tags %> 
</head> 
<body > 
    <%=yield%> 
</body> 

+0

不知道是否這是問題,但也許你可以嘗試使用新的語法呢? gon.push({current_user_rolename:current_user.role.name})。 –

回答

3

將此代碼放在一個方法對於例如:

def methodname 
gon.current_user_rolename = current_user.role.name 
end 

如果你定義的方法

而且外進行線路如下csrf_metags線application.html.erb如下它不會工作:

<%= csrf_meta_tags %> 
<%= include_gon(:init => true) %> 
    <%= Gon::Base.render_data({}) %> 
相關問題