如何从Rails控制器中提出验证错误?

时间:2013-07-04 18:17:15

标签: ruby-on-rails validation request recaptcha

我正在处理一些奇怪的事情。我正在查看request.env['recaptcha.valid']我添加到请求变量的特殊密钥,该密钥仅适用于Rails控制器。

根据上述变量的状态,如何从Rails控制器中提出rails验证错误,而不是在Model中处理这个逻辑?

1 个答案:

答案 0 :(得分:1)

查看before_filter,可以选择渲染或重定向,或者只是在调用操作之前设置一些内部状态(@captcha_failed = true)。

你可能想要这样的东西:

class MyController < ApplicationController

  before_filter :check_captcha

  # ...

  protected

  def check_captcha
    if params[:captcha] != request.env['recaptcha.valid']
      redirect_to "index", notice: "Invalid captcha"
    end
  end

end