繁体   English   中英

使用devise rails 3.1设置Recaptcha

[英]Setting up recaptcha with devise rails 3.1

我在这里遵循了devise wiki 并且在尝试创建新用户时收到模板错误。 这就是我所做的。

在config / environment.rb中设置我的公钥和私钥

ENV['RECAPTCHA_PUBLIC_KEY']='examplepubkey'
ENV['RECAPTCHA_PRIVATE_KEY'] = 'exampleprivkey'

然后,我将gem添加到我的gemfile中,并进行捆绑安装

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

然后,我通过运行rails g controller Registrations创建并将其添加到文件中来添加一个registrations控制器。

class RegistrationsController < Devise::RegistrationsController

  def create
    if verify_recaptcha
      super
    else
      build_resource
      clean_up_passwords(resource)
      flash[:alert] = "There was an error with the recaptcha code below. Please re-enter the code and click submit."
      render_with_scope :new
    end
  end  

end

我还添加了recaptcha标签到视图/设计/注册/新

<div><%= recaptcha_tags %></div>

然后,我编辑了路由文件,使其看起来像:

devise_for :users, :controllers => { :registrations => "registrations" }, :path => "users"

当我在浏览器中查看链接时,我得到

Template is missing

Missing template registrations/new with {:handlers=>[:erb, :builder, :coffee], 
:formats=>[:html], :locale=>[:en, :en]}. Searched in: * 
"/Users/thomascioppettini/rails_projects/want_freight/app/views" *
"/Users/thomascioppettini/.rvm/gems/ruby-1.9.2-p180@standard/gems/devise-1.4.5/app/views"

[编辑]

我可以通过删除我添加的有关控制器的位来使验证码显示出来,但是当我在文本字段中添加任何文本或将其保留为空白时,验证码就会通过。

[edit2]我能够弄清楚如何解决该问题,并在堆栈溢出允许我时发布解决方案。

通过销毁我使用rails g controller设置的控制器,我能够使Recaptcha正常工作,正如本站点所建议的那样,注册创建并手动添加文件。 巧妙地设置Recaptcha

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM