#ruby-on-rails-3
#ruby-on-rails-3
Вопрос:
В моем контроллере есть следующий код:
@video=Video.find(params[:id])
@video.increment!(:votes)
respond_to do|format|
format.js
Это работает нормально.Я хочу добавить к ней проверку рекапчи.Я использую рекапчу Ambethia.
Ответ №1:
- Добавьте gem ‘recaptcha’, :require => ‘recaptcha/rails’ в свой Gemfile, запустите bundle
- Создайте свои ключи рекапчи: https://www.google.com/recaptcha/admin/create
- Добавьте открытый и закрытый ключи в свой проект и перезапустите сервер:
конфигурация/инициализаторы/recaptcha.rb
Recaptcha.configure do |config|
config.public_key = 'xxx'
config.private_key = 'yyy'
end
на ваш взгляд:
<%= recaptcha_tags %>
в вашем контроллере:
def create
if verify_recaptcha
else
end
end
Комментарии:
1. У меня установлен драгоценный камень. Я хочу знать, как проверить это в контроллере 🙂
2. Не удалось скопировать / вставить 😉 Теперь она завершена.
3. Не работает. У меня в контроллере есть следующее
def vote if verify_recaptcha @video=Video.find(params[:id]) @video.increment!(:votes) respond_to do|format| format.js end else @video=Video.find(params[:id]) respond_to do|format| format.js (render 'failure.js.erb') end end end
при нажатии кнопки голосования ничего не происходит. Значение голоса не увеличивается. Она отлично работает, если рекапча удалена.4. Я использую Ajax Api.it отображает капчу.
$('#cap_<%=@video.id%>').each(function () { Recaptcha.create('6LcUkcISAAAAAHkKSVVg3BAYbwGNUukOmUZp8I9j', this); });
, но значение vote не увеличивается.5. ах, забыл перезапустить сервер