GON - не получить значение в js.erb + Rails 5
Gem File
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 %>
В контроллере уничтожить код действия.
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 ничего не отображать, и приходит предупреждение, но он отображает меня "undefine"
Может кто-нибудь помочь мне, что не так в приведенном выше коде, чтобы я мог использовать GON в файлах js.erb?
заранее спасибо
2 ответа
Afaik вы должны использовать Gon Watch, чтобы использовать Gon с Ajax.
Вы также должны сделать
<%= Gon::Base.render_data(init: true) %>
# instead of
# <%= Gon::Base.render_data %>
# <%= include_gon(:init => true) %>