ruby-on-rails - ambethia 在 Rails 3 上的 reCAPTCHA 插件。覆盖 flash 消息 div 默认值?

标签 ruby-on-rails ruby-on-rails-3 controller ruby-on-rails-plugins recaptcha

我在 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/

相关文章:

jquery - application.js 不编译或加载 CoffeeScript

ruby-on-rails - 如何从 scaffold_controller 模板中删除 respond_to block

ruby-on-rails - 为我的支付 Controller 实现 http

mysql - Rails 3,将模型中的字段从字符串更改为日期时间类型

ruby-on-rails - 仪表板命名空间的 Rails 路由帮助

asp.net-mvc - 指定的包含路径无效。 EntityType 未声明具有名称的导航属性

ruby-on-rails - Heroku bundler 不删除旧的 gems 版本

mysql - 每个用户在 Rails 上登录可以进行一次查询吗?

ruby-on-rails - Rails - ActiveRecord - 更改字段值时触发邮件

javascript - 在 ruby​​ on rails 的文本字段中动态显示数据