我在 Rails 3 上运行 ambethia 的 reCAPTCHA 插件。有谁知道如何覆盖它的 Flash 消息标记?我想重用我自己的 flash_error
div id 而不是使用插件的 flash_recaptcha_error
div id:
<div id="flash_recaptcha_error">incorrect-captcha-sol</div>
另外,你将如何清理这个 Controller #create?
def create
@post = Post.new(params[:post])
respond_to do |format|
if verify_recaptcha(:model => @post, :error => "reCAPTCHA incorrect. Try again.") && @post.save
flash.now[:notice] = "Created \"#{@post.title}\""
format.html { redirect_to(@post, :notice => 'Post was successfully created.') }
else
flash.now[:error] = "Incorrect word verification. Are you sure you\'re human?"
format.html { redirect_to(:back, :error => 'reCAPTCHA incorrect. Try again.') }
end
end
end
感谢您阅读我的问题。
最佳答案
因为 flash[] 是一个数组,您可以删除其中的元素。当我们使用recaptcha gem时,flash数组包含 recaptcha_error 元素,因此您只需使用以下命令删除此元素:
flash.delete(:recaptcha_error) 在你的 Controller 里面。
例如 :
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
也许它可以帮助你。谢谢
关于ruby-on-rails - ambethia 在 Rails 3 上的 reCAPTCHA 插件。覆盖 flash 消息 div 默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4847315/