Ссылки с data-remote = "true" не обрабатываются как JSON - PullRequest
6 голосов
/ 28 мая 2011

Я тестирую создание link_to с: remote => true, чтобы получить обработку удаленной ссылки ajax.

<%= link_to "Get Books", "/books", :remote=> true %>

Помощник для rails3 правильно разрешает код в представлении, и я получаю в качестве источника:

<a href="/books" data-remote="true">Get Books</a>

И у меня по умолчанию включен javascript:

<%= javascript_include_tag :defaults %>

И заголовок источника разрешается как:

<script src="/javascripts/jquery.js?1302296105" type="text/javascript"></script>
<script src="/javascripts/rails.js?1302139751" type="text/javascript"></script>
<script src="/javascripts/application.js?1305999509" type="text/javascript"></script>

А в контроллере у меня есть:

respond_to :html, :json

Однако, когда я нажимаю на ссылку, она загружается как обычная ссылка, а не как ajax, и в журнал сервера:

Обработка с помощью BooksController # index как HTML

Чего мне не хватает?

Ответы [ 2 ]

8 голосов
/ 28 мая 2011

Убедитесь, что у вас установлен плагин jQuery UJS :

Добавьте это в свой gemfile:

gem 'jquery-rails', '>= 1.0.3'

А затем запустите:

bundle install
rails g jquery:install
3 голосов
/ 25 сентября 2013

У меня была похожая проблема: я ожидал, что удаленная ссылка будет обрабатываться как JS-запрос, но Rails каким-то образом обрабатывал ее как HTML.

Проблема в том, что мы не указываем формат, и тогда Rails может выбратьлюбой из форматов в зависимости от конфигурации сервера.

TL; DR; Укажите тип запроса при использовании удаленного доступа:

<%= link_to "Get Books", "/books", data: {remote: true, type: "script"} %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...