提交 6f0729b6 编写于 作者: R Rafael França 提交者: GitHub

Merge pull request #29792 from lugray/delegate_respond_to

Delegate respond_to? in ActionView::Helpers::ControllerHelper
......@@ -7,8 +7,11 @@ module Helpers
module ControllerHelper #:nodoc:
attr_internal :controller, :request
delegate :request_forgery_protection_token, :params, :session, :cookies, :response, :headers,
:flash, :action_name, :controller_name, :controller_path, to: :controller
CONTROLLER_DELEGATES = [:request_forgery_protection_token, :params,
:session, :cookies, :response, :headers, :flash, :action_name,
:controller_name, :controller_path]
delegate *CONTROLLER_DELEGATES, to: :controller
def assign_controller(controller)
if @_controller = controller
......@@ -21,6 +24,11 @@ def assign_controller(controller)
def logger
controller.logger if controller.respond_to?(:logger)
end
def respond_to?(method_name, include_private = false)
return controller.respond_to?(method_name) if CONTROLLER_DELEGATES.include?(method_name.to_sym)
super
end
end
end
end
......@@ -18,4 +18,15 @@ def test_assign_controller_skips_default_form_builder
assert_nil default_form_builder
end
def test_respond_to
@controller = OpenStruct.new
assign_controller(@controller)
assert_not respond_to?(:params)
assert respond_to?(:assign_controller)
@controller.params = {}
assert respond_to?(:params)
assert respond_to?(:assign_controller)
end
end
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册