rails 4.2 中 ApplicationController:Class 的未定义局部变量或方法“gon”
undefined local variable or method `gon' for ApplicationController:Class in rails 4.2
我似乎无法让 gon gem 使用 rails 4.2.0。我得到 "undefined local variable or method `gon' for #" 我使用正确吗?另外,我的布局 application.html.erb.
的 header 中确实有 <%= include_gon(:init => true) %>
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>
将此代码放在方法中 例如:
def methodname
gon.current_user_rolename = current_user.role.name
end
如果你在方法外定义,它将不起作用
也将此行放在 application.html.erb 下方 csrf_metags 行:
<%= csrf_meta_tags %>
<%= include_gon(:init => true) %>
<%= Gon::Base.render_data({}) %>
我似乎无法让 gon gem 使用 rails 4.2.0。我得到 "undefined local variable or method `gon' for #" 我使用正确吗?另外,我的布局 application.html.erb.
的 header 中确实有 <%= include_gon(:init => true) %>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>
将此代码放在方法中 例如:
def methodname
gon.current_user_rolename = current_user.role.name
end
如果你在方法外定义,它将不起作用
也将此行放在 application.html.erb 下方 csrf_metags 行:
<%= csrf_meta_tags %>
<%= include_gon(:init => true) %>
<%= Gon::Base.render_data({}) %>