GON - 没有在js.erb + Rails中获得价值5

时间:2016-11-10 07:21:06

标签: jquery ruby-on-rails ruby ruby-on-rails-5 gon

宝石文件

gem 'gon'

这是我的application.html.erb文件。

<html>
  <head>
    <title>Test Title</title>
    <%= Gon::Base.render_data %>
    <%= include_gon(:init => true) %>
    <%= csrf_meta_tags %>
    <%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track': 'reload' %>
    <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>           
  </head>
  <body>
    ....
  </body>
</html>

现在,在许多页面(索引)上我用ajax删除了我的记录。像

<%= link_to "<i class='fa fa-times-circle-o'></i>".html_safe, section_path(sec_content, type: params[:type]), class: 'pull-right', title: 'Delete Section', data: {disable_with: "<i class='fa fa-spinner'></i>".html_safe, confirm: 'Are you sure want to delete ?'}, method: :delete, remote: true %>

在Controller中,销毁行动代码。

def destroy
  gon.test_id = 1
  section.destroy if section.present?      
end

现在,它去了destroy.js.erb文件

console.log(gon)
alert(gon.test_id)
$("#section_<%= params[:id] %>").remove();

现在,console.log无法显示和提醒,但它会显示我&#39; undefine&#39;

任何人都可以帮我解决上面代码中的错误,这样我就可以在js.erb文件中使用gon了吗?

提前致谢

2 个答案:

答案 0 :(得分:0)

在控制器&amp;中标记require 'gon'尝试。

答案 1 :(得分:0)

Afaik你必须使用gon watch将Gon与Ajax一起使用。

你也应该

<%= Gon::Base.render_data(init: true) %>

# instead of 
# <%= Gon::Base.render_data %>
# <%= include_gon(:init => true) %>