2013-03-13 15 views
19

Bu yüzden onları nasıl ayarlayacağımı araştırıyorum, sonunda bu kodla bitti.Ruby on Rails uzak anlamaya çalışıyorum: true callbacks

<script> 

$('#reportform') 
    .bind("ajax:success", function(data, status, xhr) { 
     $('#reportalert').text('Done.'); 
    }); 
    .bind("ajax:error", function(xhr, status, error) { 

     $('#reportalert').text('Failed.'); 

    }); 

</script> 


<h2>Review Driver</h2> 
<p>Fill out your review of the driver</p> 

<div class="hero-unit form-signin" id="reportformdiv"> 

    <%= form_for(@report, html: { id: "reportform" }, remote: true, update: 
    { success: "response", failure: "error"}) do |t| %> 
<p id="reportalert"></p> 
    <%= t.text_field :plant_site, placeholder: "Plant Site" %> 

    <%= t.text_field :route_number, placeholder: "Route Number" %> 

    <%= t.text_field :driver_name, placeholder: "Driver name if available" %> 

    <%= t.date_select :date_recorded, html: { class: "input-block-level" } %> 

    <%= t.text_field :action,  placeholder: "Action taken" %> 

    <%= t.text_area :report_body, placeholder: "What you witnessed", 
            style: "height: 300px;", 
            class: "input-block-level" %> 

    <%= t.submit  "File Report", class: "btn btn-primary btn-large" %> 

    <% end %> 

</div> 

Ama çalışmıyor ve ben, ben RoR yeniyim ve ben bu uzaktan kumanda ilan edebilir gerçeğini seviyorum Yanlış bir şey yapmış eminim neden hiçbir fikrim yok: true formu kendi kendini, bir kez geri çağırmalarını nasıl ayarlayacağımı anladım, iyi olacağım :) Şimdiden teşekkürler.

+0

? (F12 tuşuna basarak) Google Chrome'da erişilebilir. – MrYoshiji

+0

@MrYoshiji hiçbir şey, konsol raporları. Hiçbir şey değil. – Datsik

+0

Bu şekilde çalışmak ister misiniz? '' Remote => true' kullanarak 'jquery' kullanarak çözümüm var. Çekicilik gibi çalışacağından eminim. Tamam mı ?? – codeit

cevap

32

göre Rails' wiki için, kod feryat çalışması gerekir:

<script> 
    $(document).ready(function(){ 
    $('#reportform').on('ajax:success', function(e, data, status, xhr){ 
     $('#reportalert').text('Done.'); 
    }).on('ajax:error',function(e, xhr, status, error){ 
     $('#reportalert').text('Failed.'); 
    }); 
    }); 
</script> 

Benzer bir kod Rails benim için çalıştı 3.2.14 ve jquery rayları 3.0.4

Umarım h ELPS.

3

bu deneyin:

document ready üzerinde javascript kodu koyun:

<script> 
$(document).ready(function(){ 
    $('#reportform') 
    .bind("ajax:success", function(data, status, xhr) { 
     $('#reportalert').text('Done.'); 
    }); 
    .bind("ajax:error", function(xhr, status, error) { 

     $('#reportalert').text('Failed.'); 

    }); 
}) 
</script> 
2

Turbolinks uyumlu formu göndermek çalıştığınızda Tarayıcınızın günlük konsol anlatır neyi

<script type="text/javascript"> 

    $(document).on('ajax:success', 'a[data-remote].watching', function(e, data, status, xhr){ 

    }); 

</script>