2014-11-11 4 views
0

Я хочу, чтобы создать действие, которое возвращает мне одно значение строки:Лучший способ вернуть строку из контроллера Ajax вызова

def delay_calulation() 
    dr = Dr.find(params[:id]) 
    delay = dr.calc() 

    respond_to do |format| 
    format.json { render json: {"value" => delay}} 
    end 
end 

, но я «не прошел» в моем AJAX вызова:

$("#btn_delay").on("click", function() { 
    $.ajax({ 
     type: "GET", 
     dataType: "script", 
     url: "/drs/delay_calulation/1" 
    }) 
    .done(function(response){ 
     console.log(response); 
    }) 
    .fail(function(response){ 
     console.log(response); 
    }); 

    }); 

Как я могу получить одну строку или что-то в этом роде.

ответ

1

Вам необходимо передать идентификатор действию контроллера при вызове Ajax. Вы можете получить строку, используя имя ключа, указанное в контроллере.

$.ajax({ 
      url: '/drs/delay_calulation', 
      data: {id: (you need to pass the id)}, 
      type: "get", 
      dataType: "json", 
      success: function(data){ 
         var a = data["delay"] 
      }, 
      failure: function(data){ 
       var a = data["delay"] 
      } 
     }); 
+0

Знаете ли вы, как передать этот параметр «1» в виде данных: data {id: 1}? – Beetlejuice

+0

Да, вы можете передать любое количество параметров в формате ключа и значения, разделенных запятыми внутри хеша. Пример. data: {id: 1} –

+0

Если я это сделаю, он вызывает действие «показать» вместо действия «delay_calculation». – Beetlejuice

Смежные вопросы