我被困在论坛(包含的Stackoverflow)中似乎很好记录的问题中,但没有任何主题可以帮助我解决问题。 简而言之,我的远程调用控制器的所有应用程序都被触发两次。我在某处读到它可能是一个jQuery重复问题,但正如你在application.html.erb中看到的那样,application.js可能不是,因为jQuery只出现一次。在其他问题中出现的另一个解决方案是删除turbolink,但这并未解决我的问题。Rails 4.2.7提交远程表单的事件触发两次
我正面临的错误示例: 我有一个使用simple_form呈现的表单,它向操作提交GET请求。
<%= simple_form_for :create_answer, url: create_answer_path, remote: true do |f| %>
<b>Intenção</b>
<%= f.input :intents, :class=> "form-control", label: false%>
<b>Entidades</b>
<%= f.input :entities, :class=> "form-control", label: false%>
<b>Valores</b>
<%= f.input :values, :class=> "form-control", label: false%>
<b>Text</b>
<%= f.text_area :text, :class=> "form-control", label: false%>
<p class="text-center" style="margin-top:5px;">
<%= f.submit "Criar", :class => "btn btn-primary" %>
</p>
<% end %>
当提交操作的用户点击被触发两次,因为你可以在控制台日志中看到: 因为我处理这个动作付费远程API,调用它两次是不可接受的。
这里是我的applicatipon.html.erb文件:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<META HTTP-EQUIV="refresh" CONTENT="<%[email protected]_left%>">
<title>S2Chat</title>
<%= csrf_meta_tags %>
<script src="https://js.pusher.com/4.0/pusher.min.js"></script>
<script type="text/javascript">
$(function(){
$("#dropDown").dropdown();
});
</script>
<%= stylesheet_link_tag "application", :media => "all" %>
<%= yield(:page_stylesheet) if content_for?(:page_stylesheet) %>
<style type="text/css">
body{
overflow-x: hidden;
}
.verticalCenter {
min-height: 100%; /* Fallback for browsers do NOT support vh unit */
min-height: 100vh; /* These two lines are counted as one :-) */
display: flex;
align-items: center;
}
.audios{
display: none;
}
</style>
<audio class="audios" id="new_attendance_audio" controls preload="none">
<source src="/assets/door_bell.mp3" type="audio/mpeg">
</audio>
<audio class="audios" id="new_message_audio" controls preload="none">
<source src="/assets/message_alert.mp3" type="audio/mpeg">
</audio>
<audio class="audios" id="attendance_finished_audio" controls preload="none">
<source src="/assets/error1.mp3" type="audio/mpeg">
</audio>
<!-- Fixed navbar -->
<div class="navbar navbar-inverse navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="/home/index" style="color:white;">S2Chat</a>
</div>
<% if user_signed_in == true%>
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav navbar-right">
<li id="dropDown" class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" style="color:white;">
<%=cookies.encrypted[:user_fullname]%><b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li class="dropdown-header">Conta</li>
<li>
<% if cookies.encrypted[:user_type] == "attendant"%>
<%= link_to "Sair", delete_session_path, method: :delete, :data => {:confirm => 'Ao deslogar-se, todos os atendimentos que você está envolvido serão automaticamente finalizados. Você tem certeza que deseja sair?'}%>
<%else%>
<%= link_to "Sair", delete_session_path, method: :delete%>
<%end%>
</li>
</ul>
</li>
</ul>
</div>
<% end%>
</div>
</div>
<div>
<%= yield %>
</div>
<!-- Javascripts
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<%= javascript_include_tag "application" %>
这里是我的application.js:
//= require jquery
//= require jquery_ujs
//= require twitter/bootstrap
//= require_tree .
这里是我的Gemfile:
source 'https://rubygems.org'
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.2.7.1'
# Use SCSS for stylesheets
gem 'sass-rails', '~> 5.0'
# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0'
# Use CoffeeScript for .coffee assets and views
gem 'coffee-rails', '~> 4.1.0'
# See https://github.com/rails/execjs#readme for more supported runtimes
gem 'therubyracer', platforms: :ruby
# Use jquery as the JavaScript library
gem 'jquery-rails'
# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 2.0'
# bundle exec rake doc:rails generates the API under doc/api.
gem 'sdoc', '~> 0.4.0', group: :doc
gem "excon"
gem "rails_12factor"
gem 'rails_12factor', group: :production
gem 'simple_form'
gem "less-rails" #Sprockets (what Rails 3.1 uses for its asset pipeline) supports LESS
gem 'twitter-bootstrap-rails'
# twitter bootstrap css & javascript toolkit
#gem 'twitter-bootswatch-rails', '~> 3.3.4'
# twitter bootstrap helpers gem, e.g., alerts etc...
#gem 'twitter-bootswatch-rails-helpers'
# Use ActiveModel has_secure_password
# gem 'bcrypt', '~> 3.1.7'
# Use Unicorn as the app server
# gem 'unicorn'
# Use Capistrano for deployment
# gem 'capistrano-rails', group: :development
source 'https://rails-assets.org' do
gem 'rails-assets-tether', '>= 1.3.3'
end
group :development, :test do
# Call 'byebug' anywhere in the code to stop execution and get a debugger console
gem 'byebug'
end
group :development do
# Access an IRB console on exception pages or by using <%= console %> in views
gem 'web-console', '~> 2.0'
# Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
gem 'spring'
end
任何人都可以帮我吗?谢谢
您是对的,谢谢! –