2010-10-29 5 views
3

Я пытаюсь реализовать систему голосования, подобную той, что находится здесь, в Stack Overflow. (Использование Rails 3) Я хочу, чтобы голосование должно быть сделано без перезагрузки страницы, поэтому у меня есть этот кодRails: link_to with: remote => true not working

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

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

Отсутствующие теги шаблона/upVote с {: форматы => [: HTML]

Кроме того, вот что я имею в мой файл маршрутов

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

Любые идеи, как я могу заставить это работать?

+0

Я удалил ответ, так как это был неправильный ответ. – Swanand

ответ

6

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

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

2

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

И, наконец, я должен был

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

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

0

типа что-то вроде внутри рельсов корня приложения:

rails g jquery:install 

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

<%= javascript_include_tag :defaults %> 

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

<%= javascript_include_tag :rails, :application %> 

[РЕДАКТИРОВАТЬ: для рельсов 3.1 и выше с использованием ассе t]

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

//= require jquery 
//= require jquery_ujs 

Надеется, что это помогает!