레일을 학습하고이를 강조하고 싶으므로이 방법을 "레일 방법"으로 사용하려고합니다.Forms in Rails 3.2 및 ajax 처리 요청 콜백
여기 내 "문제"입니다.
$('#subscribe-form')
.on('ajax:beforeSend', function(){
console.log('before send');
})
.on('ajax:success', function(){
console.log('success');
})
.on('ajax:complete', function(){
console.log('complete');
})
.on('ajax:error', function(){
console.log('fail');
})
내 응용 프로그램 :
나는가 home.js에 home.html.erb<%= form_tag( subscribe_newsletter_path , id:'subscribe-form', remote: true) do %>
<%= email_field(:subscription, :email, placeholder: 'ex: [email protected]') %>
<%= submit_tag("Subscribe Now!", class: 'btn btn-success') %>
<% end %>
내 자바 스크립트에서 다음과 같습니다 간단한 가입 양식을 가지고있다. js
//= require jquery
//= require jquery_ujs
//= require_tree .
내 home_controller.rb 파일
response = //Response message from mailchimp API. looks like that {"error"=>"[email protected] is already subscribed to list Testing Rails. <a href=\"http://test.us6.list-manage1.com/subscribe/send-email?u=test&id=test&e=test==\">Click here to update your profile.</a>", "code"=>214}
render json: response, status: '200'
아약스 요청 해고 않고 내 컨트롤러는 이메일을 수신하고 메일 침프의 API로 전송 (나를 위해 까다로운 곳은) 다음과 같습니다 그런 다음 브라우저 (상태 200, Chrome dev 도구에서 json 응답을 볼 수 있음)로 다시 보내면 바인드 이벤트가 트리거되지 않습니다. $ (document)에 이벤트를 바인드 할 때 작업 중이라는 것을 알고 있습니다. $ ('# subscribe-form') 대신 잘 작동합니다 ...
왜?
rails 3.2 및 rails.js ?? 확실합니까? rails.js는 내가 기억하는 레일 2.x의 구성 요소입니다. – rmagnum2002
@ rmagnum2002 실제로 당신 말이 맞습니다. rails.js가 아닙니다. // application.js에 jquery_ujs가 필요합니다. 이것이 내가 의미하는 바입니다. 혼란에 죄송합니다. 질문을 수정하겠습니다.
– Syl