0

我有一個多步驟的Rails 3的形式,我設置使用此railscast:http://railscasts.com/episodes/217-multistep-forms,我用另一個railscast實現我的應用程序條紋付款:http://railscasts.com/episodes/288-billing-with-stripeRails 3 if語句與jQuery?

在我的應用程序,支付方式是通過jQuery的隱藏如果向用戶收取的金額爲0

$(document).ready(function() { 
    var xyz = $("span#total").text(); 

    if (xyz == 0){ 
    $("div#stripefields").hide(); 
    };  
}); 

我希望能夠做的就是告訴我的Rails應用程序,不需要的條紋支付領域成功提交表單,如果量向用戶收取的是什麼是0.所以,我需要修改我的控制器中的這個聲明以反映:

elsif @video.last_step? 
    @video.save if @video.all_valid? && @video.save_with_payment(@total) 

@total是向用戶收取的金額,「save_with_payment」表示分條費用。這樣做最好的方法是什麼?我能否以某種方式添加另一個「如果」這個陳述?

回答

4

編輯:對不起,我犯了一個錯字。

您需要檢查,如果收取的總大於0付款前,或允許視頻保存如果總爲0

@video.save if @video.all_valid? && ((@total > 0 && @video.save_with_payment(@total)) || @total == 0) 

此外,在jQuery代碼你比較整數到一個字符串。您可能需要:

$(document).ready(function() { 
    var xyz = parseFloat($("span#total").text()); 

    if (xyz === 0.0){ 
    $("div#stripefields").hide(); 
    } 
}); 

只是爲了避免潛在的不一致。與==相比,它會嘗試強制類型,因此可能會得到一些奇怪的結果。因此,通過使用parseFloat將總價格(無論是整數還是浮點數)轉換爲浮點值並與浮點數(0.0)進行比較,我們會使結果非常清晰。

+0

真棒......謝謝。 – user1429496 2012-08-15 17:00:02

+0

@ user1429496我犯了一個錯字。再次檢查它是否有正確的條件。 – 2012-08-15 17:22:21