Module: MultiSubmitCheck::ControllerBaseHack

Included in:
ActionController::Base
Defined in:
lib/multi_submit_check.rb

Overview

控制器修改

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



19
20
21
# File 'lib/multi_submit_check.rb', line 19

def self.included(base)
  base.send :before_filter, :__multiple_submit_check__
end

Instance Method Details

#__check_token__Object

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



30
31
32
33
34
35
36
37
38
# 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__Object



23
24
25
26
27
# 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