0

如果验证码正确,此 before_filter 在更新或创建记录之前进行验证。
当它不正确时,它会带我回到上一页,但所有输入数据都会消失.... 我怎样才能保留在上一页输入的输入数据?

我想使用 before_filter 并应用这两个操作“更新”和“创建”。它应该检测提交的来源并切换重新渲染“新”或“编辑”的位置

before_filter :simple_captcha_check, :only => [:update, :create] 

def simple_captcha_check
    if !simple_captcha_valid?
        flash[:error] = 'Wrong Captcha!'
        redirect_to :back
    end
end
4

1 回答 1

1

假设您正在创建/更新User模型,您的代码可能如下所示:

def simple_captcha_check
  if !simple_captcha_valid?
    flash[:error] = 'Wrong Captcha!'

    if request.put? # We came from an edit request
      @user = User.find(params[:id])
      @user.attributes = params[:user]
      render :action => :edit
    elsif request.post? # We came from a new request
      @user = User.new params[:user]
      render :action => :new
    end
  end
end
于 2012-12-22T12:45:15.173 回答