2014-02-17 3 views
5

У меня есть js.erb файл, в котором я выполнить Ajax GET так:обработка Rails Controller как */*

$.get("<%= j @stored_location %>"); 

Все хорошо, однако мои логи сервера показать это:

Processing by XyzController#index as */* 

Я знаю, что «/» означает «любой формат», и все работает нормально, поэтому мне интересно, есть ли смысл пытаться гарантировать, что Rails обрабатывает это действие явно как :js. Нужно ли что-то добавить к вызову $.get? Должен ли я беспокоиться?

ответ

10

1: Должны ли вы беспокоиться?

Я думаю, что всегда хорошая привычка быть столь же точной и явной, как вы можете, с такими вещами. Если вы хотите, чтобы у вас была возможность ответить по-другому для одного и того же URL-адреса в зависимости от времени запроса в будущем, вам придется иметь дело с этой проблемой. Так что да, вы должны беспокоиться. Хуже того, вы узнаете что-то новое из этого:

2: Как это исправить?

Jquery Get documentation содержит аргумент dataType, который вы можете передать на ваш звонок. Так, например, если вы ждете JSON для возвращения с сервера ваш запрос может выглядеть следующим образом:

$.get({ 
    url: "<%= j @stored_location %>", 
    data: data, 
    success: success, 
    dataType: "json" 
}); 

Посмотрите документацию и решить, что лучше для вас дела.

+2

Спасибо, я использовал 'dataType:" script "', в конце концов, отлично работает. – stephenmurdoch

+0

Спасибо. Огромное спасибо. –