Каптча для приложения на Ruby on Rails

Сегодня мы рассмотрим подключение каптчи для нашего RoR приложения. Для этого дела есть уже готовый гем: simple_captcha. Рассмотрим его подключение. Для начала в файл Gemfile добавим...

Автор . Дата: 01.11.2014

Сегодня мы рассмотрим подключение каптчи для нашего RoR приложения. Для этого дела есть уже готовый гем: simple_captcha. Рассмотрим его подключение.

Установка

Для начала в файл Gemfile добавим:

gem "galetahub-simple_captcha", :require => "simple_captcha"

Если у вас Rails 4, то вам необходимо добавить вместо предыдущего кода вот этот:

gem 'simple_captcha', :git => 'git://github.com/pludoni/simple-captcha.git'

Это нужно потому, что simple_captcha не поддерживает Rails 4 в оригинале. После этого выполним в командной строке:

bundle install
rails generate simple_captcha
rake db:migrate

Это создаст необходимые файлы и миграции, и выполнит их.

Использование

В требуемой вьюхе добавляем код, который будет рендерить нашу каптчу:

<%= show_simple_captcha %>

В application_controller.rb добавялем инклуд хелперов:

include SimpleCaptcha::ControllerHelpers

И в требуемом месте проверяем каптчу на валидность:

if simple_captcha_valid?
  do this
else
  do that
end

Хелпер для FormBuilder

Гем добавляет новый тег для FormBuilder'a:

<%= form_for @user do |f| -%>
  ...
  <%= f.simple_captcha :label => "Enter numbers.." %>
  ...
<% end -%>

И теперь валидацию можно провести вот таким образом:

@user.valid_with_captcha?

Локализация

Гем поддерживает локализацию, поэтому в файл вашей локализации необходимо добавить секцию simple_captcha:

ru:
  simple_captcha:
    placeholder: 'Введите код...'
    label: 'Введите код указанный на картинке выше. Если код не видно нажмите обновить.'

Внешний вид

Вы можете адаптировать внешний вид под себя. Файл с вьюхой лежит в папке simple_captcha и называется _simple_captcha.erb


comments powered by HyperComments