无法在rails上的ruby中使用ajax发布数据

时间:2016-03-18 06:30:23

标签: jquery ruby-on-rails ajax ruby-on-rails-4

您好我在视图中包含了给定的代码

= form_for @order, :url => update_express_shipping_path,:remote=> true, :html => { :id => "shippingDetails" } do |form|
    = form.radio_button :express_shipping, true, :value => true, :id => 'shipping_method4', :name => 'shipping_method'
    Express Shipping
    .checkOrder{:value=> @order.id}

并在我的js文件中包含

$('#shipping_method4').click(function(){ 
    if($(this).is(':checked')){
        alert ('123')
        $.ajax({
            url: '/update_express_shipping',
            type: 'POST',
            data: {
                'id': $('.checkOrder').attr('value'),
                'express_shipping': $(this).val()
              },
            contentType: 'json'  
        });     
    } 
})

并在我的控制器中

def update_express_shipping
    byebug
    a = '123'
  end

现在当我点击单选按钮并进行检查时,我没有在控制器中接收数据,它只给出了这个 PARAMS {“controller”=>“spree / checkout”,“action”=>“update_express_shipping”}

请告诉我错误的地方。提前谢谢。

2 个答案:

答案 0 :(得分:1)

对于单选按钮,您应该使用change()而不是click()

替换

  

$('#shipping_method4')。点击(function(){

  

$('#shipping_method4')。change(function(){

答案 1 :(得分:1)

您可以尝试使用$.post

的语法
$.post('/update_express_shipping', { 'id': $('.checkOrder').attr('value'),
                'express_shipping': $(this).val()})