Rails: link_to with: remote => true не работает - PullRequest
3 голосов
/ 29 октября 2010

Я пытаюсь внедрить систему голосования, подобную той, что здесь, в Переполнении стека.(Используя Rails 3) Я хочу, чтобы голосование проводилось без перезагрузки страницы, поэтому у меня есть этот код

link_to("/tags/#{tag.id}/upVote", :remote => true )

И поэтому в моем каталоге / views / tags у меня есть файл с именем _upVote.js.erbчто я думал будет вызываться при нажатии на эту ссылку, но это не так.Он пытается обработать upVote как HTML, и это ошибка, которую я получаю

Отсутствуют теги шаблона / upVote с {: format => [: html]

Также,вот что у меня в файле маршрутов

match "tags/:id/upVote" => "tags#upVote"

Есть идеи, как мне заставить это работать?

Ответы [ 4 ]

6 голосов
/ 29 октября 2010

Если вы получили это сообщение об ошибке на новой пустой странице, это означает, что ваш удаленный вызов не работает, и вызов не был выполнен с помощью запроса Ajax. Вы должны убедиться, что ваш макет правильно загружает jQuery и соединитель jQuery Rails, доступный здесь: http://github.com/rails/jquery-ujs

Затем используйте Firefox + Firebug, чтобы убедиться, что вызов действительно является вызовом Ajax.

2 голосов
/ 05 марта 2015

У меня была такая же проблема.Чтобы решить эту проблему, я следовал

И, наконец, мне пришлось

Require both jquery and jquery_ujs were in the application.js manifest.
//= require jquery
//= require jquery_ujs

После всего этого Rails ajax начал работать на меня.

1 голос
/ 13 сентября 2011

Смотрите это сообщение для решения:

Rails form_for: remote => true не вызывает метод js

При изменении среды rails на JQuery вы можетеслучайно потерял ваш файл jquery-ujs.

0 голосов
/ 06 ноября 2015

введите что-то вроде в вашем корне приложения rails:

rails g jquery:install

А затем внутри вашего application.html.erb добавьте строку

<%= javascript_include_tag :defaults %>

или явно (не забудьте включить свой jquery отдельно):

<%= javascript_include_tag :rails, :application %>

[РЕДАКТИРОВАТЬ: для Rails 3.1 или более поздней версии с использованием конвейера активов]

Используйте gem jquery-rails (как упомянуто выше) и добавьте следующие строки в app / assets / javascripts / application.js (если их еще нет):

//= require jquery
//= require jquery_ujs

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...