代码之家  ›  专栏  ›  技术社区  ›  nourza

rails recaptcha错误:我们检测到您的站点没有验证recaptcha解决方案。一直都是假的

  •  0
  • nourza  · 技术社区  · 7 年前

    在gemfile中

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

    在初始值设定项中的配置中回溯.rb

    Recaptcha.configure do |config|
      config.site_key   = 'my site key'
      config.secret_key = 'my secret key' 
    end
    

    <%= recaptcha_tags %>
    

    在控制器中:

    def create
      @contact = Contact.new(contact_attributes)
      if verify_recaptcha(model: @contact) && @contact.save
        ContactMailer.message_send(@contact).deliver
        redirect_to contacts_path, notice: "Thank you... Your Message was sent successfully."
      else
        flash.now[:error] = "Please correct the form"
        render :index
      end
    end
    

    Recaptcha.configure do |config|
      config.public_key = ENV["RECAPTCHA_PUBLIC_KEY"]
      config.private_key = ENV["RECAPTCHA_PRIVATE_KEY"]
    end
    

    但我犯了个错误

    undefined method `public_key=' for #<Recaptcha::Configuration:0x00007fc132b363e8> (NoMethodError)
    Did you mean?  public_send
    

    https://www.google.com/recaptcha/api/siteverify 我有 { “错误代码”:[ “缺少输入响应”, “缺少输入密码” ]

    不知道该怎么办请帮我提前谢谢

    1 回复  |  直到 7 年前
        1
  •  2
  •   Tarek N. Elsamni    7 年前

    你把它放哪儿了 <%= recaptcha_tags %>

    依据: https://github.com/ambethia/recaptcha/blob/master/lib/recaptcha/configuration.rb

    Recaptcha.configure do |config|
      config.site_key   = 'my site key'
      config.secret_key = 'my secret key' 
    end
    

    另一方面,宝石会自动从中挑选 ENV['RECAPTCHA_SECRET_KEY'] ENV['RECAPTCHA_SITE_KEY']

    这行不通:

    Recaptcha.configure do |config|
      config.public_key = ENV["RECAPTCHA_PUBLIC_KEY"]
      config.private_key = ENV["RECAPTCHA_PRIVATE_KEY"]
    end
    

    recaptcha_tags