2016-07-03 7 views
0

В form_for @estimate, я использую collection_select, чтобы дать мне выпадающий список названий приводит в таблице «ведет»Использование RoR form_for с collection_select

<%= form_for(@estimate) do |f| %> 

    <div class="field"> 
     <%= f.label "Lead" %><br> 
     <%= f.collection_select :lead_id, @leads, :id, :full_name, prompt: true %> 
    </div> 
    ... 

опции для выбора тега заполнения правильно с выводами. Я использую метод .getJSON JQuery для извлечения данных из выбранного варианта

$(document).on('change', 'select#estimate_lead_id', function(e) { 
     var url = "/leads"; 
     var data = { 
     id: $(this).val() 
     }; 
     $.getJSON(url, data, function (data, status) {   
     if (status === 200) { 
      return data 
      console.log(data); 
      alert("THIS IS WORKING!");   
     }; 
     }); 
    }); 

Однако, я не могу получить эту работу. вот мои журналы сервера - он, похоже, обращается к базе данных.

Started GET "/leads?id=23" for 127.0.0.1 at 2016-07-02 23:29:29- 0500 
    Processing by LeadsController#index as JSON 
    Parameters: {"id"=>"23"} 
    Lead Load (1.1ms) SELECT "leads".* FROM "leads" 
    Rendered leads/index.html.erb within layouts/application (10.4ms) 
    User Load (0.7ms) SELECT "users".* FROM "users" WHERE "users"."id" = 1 LIMIT 1 
    Completed 200 OK in 51ms (Views: 47.6ms | ActiveRecord: 1.8ms) 

Я выбрать имя из базы данных ведет с ид = 23, но ничего не протоколирования на консоль, а не боевой готовности. Я хочу использовать данные для заполнения полей в форме сметы. Что я делаю не так?

+0

хау вы получаете значение переменной статуса? –

+0

статус происходит из заголовка ответа HTTP - 200 означает, что все в порядке – DonYacos

ответ

0

У меня такая же проблема, прежде чем при работе с асинхронной задачей. То, что я сделал, вместо того, чтобы отдельно вызов OnChange функции, я называю это внутри выберите тег:

это будет выглядеть следующим образом:

<select onchange="myfunction(parameterIfneeded)"> 
.... 
</select> 

тогда в моей Js функции:

function myfunction(param) { 
     .............. 
     ....... 
    //PROCESS your AJAX here 
}