Ruby on rails 安贝西亚';Rails3上的reCAPTCHA插件。是否覆盖闪存消息div默认值?

Ruby on rails 安贝西亚';Rails3上的reCAPTCHA插件。是否覆盖闪存消息div默认值?,ruby-on-rails,ruby-on-rails-3,controller,ruby-on-rails-plugins,recaptcha,Ruby On Rails,Ruby On Rails 3,Controller,Ruby On Rails Plugins,Recaptcha,我已经在Rails3上安装了ambethia的reCAPTCHA插件。有人知道如何覆盖flash消息标记吗?我想重用我自己的flash\u errordiv id,而不是使用插件的flash\u recaptcha\u errordiv id: <div id="flash_recaptcha_error">incorrect-captcha-sol</div> 感谢阅读我的问题。因为flash[]是一个数组,您可以删除其中的元素。当我们使用recaptcha gem时

我已经在Rails3上安装了ambethia的reCAPTCHA插件。有人知道如何覆盖flash消息标记吗?我想重用我自己的
flash\u error
div id,而不是使用插件的
flash\u recaptcha\u error
div id:

<div id="flash_recaptcha_error">incorrect-captcha-sol</div>

感谢阅读我的问题。

因为flash[]是一个数组,您可以删除其中的元素。当我们使用recaptcha gem时,闪存阵列包含recaptcha_error元素,因此您只需使用以下内容删除此元素: 闪存。删除控制器中的(:recaptcha_错误)

例如:

if  verify_recaptcha(:model=>@object,:message=>"Verification code is wrong", :attribute=>"verification code") && @object.save
  #your code if succes
else
  flash.delete(:recaptcha_error)
  #your code if its fail
end

也许它能帮助你。谢谢

如果您是从头开始制作用户身份验证系统,您可能需要执行以下操作:

class UsersController < ApplicationController

  def new
    @user = User.new
  end

  def create
    @user = User.new(params[:user])
    respond_to do |format|
        if verify_recaptcha(:model => @user )
            if @user.save
                format.html { redirect_to root_url,  :notice => "You have Signed up!" }
            else
                format.html { render :new }
            end
        else
            flash.delete(:recaptcha_error)
            format.html { redirect_to( root_path , :flash => { :error => 'Please retry the two words of the reCaptcha' } ) }
        end
    end
  end
end
class UsersController@user)
如果@user.save
format.html{redirect_to root_url,:notice=>“您已经注册了!”}
其他的
format.html{render:new}
结束
其他的
flash.delete(:recaptcha\u错误)
format.html{重定向到(根路径:flash=>{:error=>'请重试reCaptcha'}的两个单词)}
结束
结束
结束
结束
class UsersController < ApplicationController

  def new
    @user = User.new
  end

  def create
    @user = User.new(params[:user])
    respond_to do |format|
        if verify_recaptcha(:model => @user )
            if @user.save
                format.html { redirect_to root_url,  :notice => "You have Signed up!" }
            else
                format.html { render :new }
            end
        else
            flash.delete(:recaptcha_error)
            format.html { redirect_to( root_path , :flash => { :error => 'Please retry the two words of the reCaptcha' } ) }
        end
    end
  end
end