Я пытаюсь настроить выбранный ввод, который заполняет div данными, вытащенными при вызове ajax при изменении ввода выбора.Rails JQuery вызов Ajax преуспевает, но данные js.erb не отображаются, если я не включаю нежелательные символы.
Я проверил в журналах, что успешный вызов ajax и файл js.erb визуализируется, однако, действительно ли содержимое js.erb-файла фактически отображается в целевом div, похоже, зависит от того, включаю ли я некоторые символы в файле js.erb. Я не могу окутать голову, почему это может быть, и я не могу получить конкретные данные, которые я хочу отображать, не включая также нежелательных символов.
Вид:
<div id="gl"></div>
<div class="form-group">
<%= f.label :fc %>
<div class="input-group">
<%= f.collection_select :fc, Location.active, :location_name, :location_name, {prompt: true}, {required: true, class: 'form-control input-sm'} %>
</div>
</div>
Просмотр сценария:
$(document).ready(function() {
$("#idle_asset_fc").change(function() {
$.ajax({
url: "<%= get_gl_prefix_ajax_path %>",
data: "fc=" + $("#idle_asset_fc").val(),
success: function(data){
$("#gl").html(data);
}
});
});
Контроллер:
def get_gl_prefix_ajax
@result = Location.location_name(params[:fc]).pluck(:gl_prefix)[0]
respond_to do |format|
format.js
end
end
Примеры get_gl_prefix_ajax.js.erb, которые успешно изменяют div:
Добавление двойных или одинарных кавычек вокруг моих меток erb позволяет добавлять его в div, а добавление двойной косой черты также позволяет добавлять данные, однако котировки и слеши также показать, что не требуется
'<%= @result %>' <!-- results in '01.1234', including the quotes -->
//<%= @result %> <!-- results in //01.1234, including the forward slashes -->
Это то, что я хочу, но он не добавляется к DIV без вышеуказанных символов:
<%= @result %> <!-- should result in 01.2345 -->
Можно также упомянуть, что обычный текст не будет добавлен без кавычек или косой черты. Кроме того, добавление чего-либо за пределами кавычек или не непосредственно за двойными косыми чертами приведет к тому, что в div не будет добавлено ничего.
Я пробовал обернуть свой код в escape_javascript, но, похоже, это не изменило ситуацию.
Представитель запись журнала:
Mon Dec 05 19:16:48 2016 GMT 26728....com:0 [INFO] (null):0 (null)(): (null): Started GET "/get_gl_prefix_ajax?fc=ILA11" for 1...9 at 2016-12-05 19:16:48 +0000
Mon Dec 05 19:16:48 2016 GMT 26728....com:0 [INFO] (null):0 (null)(): (null): Processing by LocationsController#get_gl_prefix_ajax as */*
Mon Dec 05 19:16:48 2016 GMT 26728....com:0 [INFO] (null):0 (null)(): (null): Parameters: {"fc"=>"ILA11"}
Mon Dec 05 19:16:48 2016 GMT 26728....com:0 [DEBUG] (null):0 (null)(): (null): (12.3ms) SELECT `locations`.`gl_prefix` FROM `locations` WHERE (location_name = 'ILA11')
Mon Dec 05 19:16:48 2016 GMT 26728....com:0 [INFO] (null):0 (null)(): (null): Rendered locations/get_gl_prefix_ajax.js.erb (0.4ms)
Mon Dec 05 19:16:48 2016 GMT 26728....com:0 [INFO] (null):0 (null)(): (null): Completed 200 OK in 126ms (Views: 2.2ms | ActiveRecord: 12.3ms)
Любая идея, что происходит, и как я могу просто отобразить данные, которые я хочу без нежелательных символов?
Спасибо, RJS Way работал отлично. –