此before_filter在更新或创建记录之前验证captcha是否正确。
当它是不正确的,它带我回到上一页,但所有的输入数据将消失....如何保留在前一页输入的输入数据?
我想使用before_filter并应用这两个动作'更新'和'创建'。它应该检测提交来自哪里,并切换到重新渲染'new'或'edit'的位置
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
假设您正在创建/更新一个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