2014-11-17 1 views
1

Я пытаюсь использовать recaptcha в моем приложении 4 рельсов, но мне что-то не хватает, поскольку он не проверяет его вообще. Я использую этот драгоценный камень https://github.com/ambethia/recaptchaрельсы 4 recaptcha не работает

Gemfile

gem "recaptcha", :require => "recaptcha/rails" 

.env

RECAPTCHA_PUBLIC_KEY=6Lf2... 
RECAPTCHA_PRIVATE_KEY=6Lf2... 

confir/Инициализаторы/recaptcha.rb

Recaptcha.configure do |config| 
    config.public_key = ENV["RECAPTCHA_PUBLIC_KEY"] 
    config.private_key = ENV["RECAPTCHA_PRIVATE_KEY"] 
    config.proxy = 'http://myproxy.com.au:8080' 
end 

index.html.erb

<form accept-charset="UTF-8" action="<%= contact_url %>" id="ajax-contact-form" method="post"> 
    <fieldset> 
    <input type="email" id="contact-email" name="email" placeholder="Email..." class="form-control" required> 
    <input type="text" id="contact-subject" name="subject" placeholder="Subject..." class="form-control" required> 
    <textarea id="contact-body" name="body" placeholder="Message..." class="form-control"></textarea> 
    <input type="submit" name="commit" value="Send" class="btn"> 
    <input type="hidden" name="authenticity_token" value="<%= form_authenticity_token %>"> 
    <%= recaptcha_tags %> 
    </fieldset> 
</form> 

main.coffee

$ -> 
    sendMessage =() -> 
    email = $('#contact-email').val() 
    subject = $('#contact-subject').val() 
    body = $('#contact-body').val() 
    data = 
     "email": email 
     "subject": subject 
     "body": body 
     "authenticity_token": $('input[name=authenticity_token]').val() 

    $('#ajax-contact-form').hide() 
    $('.contact.success-message').html("Thank you, #{email}. We&apos;ll be in touch.") 

    posting = $.ajax '/contacts', 
     type: 'POST' 
     data: JSON.stringify(data) 
     dataType: 'json' 
     contentType: 'application/json' 

    posting.done (data) -> 
     console.log "done" 

    $('#ajax-contact-form').on 'submit', (e) -> 
     e.preventDefault() 
     sendMessage() 

Я не имею ничего ни контроллеров, я не знаю, если/когда я должен иметь.

Большое вам спасибо за вашу помощь

ответ

0

Вы можете проверить код капчи, вызвав verify_recaptcha в контроллере. Метод вернет true/false и даже установит ваше сообщение об ошибке для captcha (вы можете настроить его с помощью options).

Смежные вопросы