Я пытаюсь использовать ajax для получения информации от моего контроллера.Rails ajax не возвращает формат json
Но это не возвращает json, как я ожидаю. Возможно, у меня конфликт маршрутизации, но не уверен.
Мой контроллер:
class TicketsController < ApplicationController
before_action :authenticate_user!
respond_to :js, :json, :html
//...
def fill_category_select
@category_by_system = Category.where(system_id: params[:sent_id])
render json: @category_by_system
end
мой routes.rb:
resources :tickets
get 'tickets/fill_category_select/:sent_id', to: 'tickets#fill_category_select'
мой сценарий на Haml файле:
:javascript
$(document).ready(function(){
$('#ticket_system').change(function(){
$.ajax({
url: "fill_category_select",
type: "GET",
dataType: "json",
data: { sent_id: $('#ticket_system').val() },
async: true,
success: function(data, textStatus, xhr) {
for(var i in data){
var id = data[i].id;
var title = data[i].description;
$("#ticket_category").append(new Option(title, id));
}
},
error: function(XMLHttpRequest, errorTextStatus, error){
alert("Failed: "+ errorTextStatus+" ;"+error);
}
});
});
});
Когда я вызвать событие и сделайте запрос, он это:
REQUEST URL: http://localhost:3000/tickets/fill_category_select?sent_id=44
REQUEST METHOD: GET
STATUS CODE: 200 OK
TYPE: html
И ошибка возвращается и отображается предупреждение Javascript является: «SyntaxError: JSON.parse: неожиданный символ в строке 1 колонки 1 из данных в формате JSON»
Это вроде не hiting мой fill_category_select, потому что я» ve попытался поставить рейз «ошибка», и он просто показывает ту же ошибку.
Может ли кто-нибудь дать мне направление?
---------- EDIT
Я нашел маршрут линия не работает.
, когда я добавляю ресурсы: билеты, за исключением: [: шоу]
Просьба принести мне «ошибка 404», это не просто проблема переопределения, маршрутизация не работает вообще.
И мне еще нужно открыть то, что я делаю неправильно. любое предложение?
Если добавить URL с ** ** в JSON заставить его работать в формате JSON, будет ли он работать? Например: ** fill_category_select.json **. –
Да, даже когда я поставил .json в свой запрос, ответ все еще находится в html. –