module MultiSubmitCheck::ControllerBaseHack

控制器修改

Public Class Methods

included(base) click to toggle source
# File lib/multi_submit_check.rb, line 19
def self.included(base)
  base.send :before_filter, :__multiple_submit_check__
end

Public Instance Methods

__check_token__() click to toggle source

每个action只能打开一个表单,否则session会有冲突.

# File lib/multi_submit_check.rb, line 30
def __check_token__
  return if params[:__token__].blank?
  name=URI.parse(request.referrer).path
  if session[name] == params[:__token__]
    session[name] = nil
    return
  end
  render :status => 404, :text => '您提交的请求已经在处理,请勿重复提交表单!' and return
end
__multiple_submit_check__() click to toggle source
# File lib/multi_submit_check.rb, line 23
def __multiple_submit_check__
  if request.post?
    render :text => __check_token__ and return if __check_token__.present?
  end
end