button_to with: remote => true не обновляет счетчик голосов на моей странице - PullRequest
2 голосов
/ 11 марта 2011

У меня есть кнопка голосования на мой взгляд.Когда эта кнопка нажата, она должна увеличивать голоса для конкретного видео.

В моем просмотре у меня есть:

<%= button_to 'Vote',  :method => :add_point, :remote=>true %>

В моем контроллере у меня есть,

@video=Video.find(params[:id])
@video.increment!(:votes)

Но при нажатии кнопки значение голосов остается тем же. В чем проблема в этом коде?

Обновление: Теперь я получаю следующую ошибку: Couldn't find Video without an ID app/controllers/videos_controller.rb:8:in add_point'`

Ответы [ 3 ]

5 голосов
/ 11 марта 2011

вместо method вы должны использовать action. Также проверьте, какой метод вы должны использовать с этим действием (в вашем rout.rb)

<%= button_to 'Vote', :action => :add_point, :remote=>true %>
1 голос
/ 12 марта 2011

Спасибо всем за ваш ценный отзыв. Я проверил не Ajax-версию, и она работает. Единственная вещь, я использую маршрут по умолчанию. Аяксинг и добавление маршрута должно быть достаточно простым…является.Вот контроллер:

def increment
        number=Digit.find(params[:id])
        number.increment!(:value)
        #number.update_attribute(:value,"value+1")
        redirect_to(:action=>'index')
    end

, а вот вид:

<%=button_to '+1',:action=>:increment,:id=>number.id%>

Связывание этой логики голосования с видео или любым другим контентом не должно требовать больших усилий.:)

1 голос
/ 11 марта 2011

Прежде всего, убедитесь, что действие завершено.Перейдите в каталог вашего проекта и выполните:

tail -f log/*.log

Затем нажмите кнопку еще раз, наблюдая за вашей консолью.Если вы видите некоторые обновления SQL в таблице «видео», то вы на полпути.

Во-вторых, вы написали несколько JS в представлении, чтобы ответить на запрос Ajax?Вместо того, чтобы усекать что-то чрезвычайно важное, ознакомьтесь с этим Railscast на ненавязчивом Javascript:

Видео: http://railscasts.com/episodes/205-unobtrusive-javascript

Текст: http://asciicasts.com/episodes/205-unobtrusive-javascript

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