提交 0e063f43 编写于 作者: J José Valim

Fix some backward incompatible behavior on AM.

上级 d6e2f501
......@@ -250,6 +250,7 @@ class Base < AbstractController::Base
include AbstractController::Layouts
include AbstractController::Helpers
include AbstractController::Translation
include AbstractController::Compatibility
helper ActionMailer::MailHelper
......
......@@ -12,6 +12,7 @@ module AbstractController
autoload :Base
autoload :Callbacks
autoload :Collector
autoload :Compatibility
autoload :Helpers
autoload :Layouts
autoload :LocalizedCache
......
module AbstractController
module Compatibility
extend ActiveSupport::Concern
def _find_layout(name, details)
details[:prefix] = nil if name =~ /\blayouts/
super
end
# Move this into a "don't run in production" module
def _default_layout(details, require_layout = false)
super
rescue ActionView::MissingTemplate
_find_layout(_layout({}), {})
nil
end
end
end
......@@ -25,7 +25,7 @@ module ClassMethods
def inherited(klass)
helpers = _helpers
klass._helpers = Module.new { include helpers }
klass.class_eval { default_helper_module! unless name.blank? }
super
end
......@@ -146,6 +146,16 @@ def _modules_for_helpers(args)
end
end
end
def default_helper_module!
module_name = name.sub(/Controller$/, '')
module_path = module_name.underscore
helper module_path
rescue MissingSourceFile => e
raise e unless e.is_missing? "helpers/#{module_path}_helper"
rescue NameError => e
raise e unless e.missing_name? "#{module_name}Helper"
end
end
end
end
......@@ -2,6 +2,8 @@ module ActionController
module Compatibility
extend ActiveSupport::Concern
include AbstractController::Compatibility
class ::ActionController::ActionControllerError < StandardError #:nodoc:
end
......@@ -103,19 +105,6 @@ def method_for_action(action_name)
super || (respond_to?(:method_missing) && "_handle_method_missing")
end
def _find_layout(name, details)
details[:prefix] = nil if name =~ /\blayouts/
super
end
# Move this into a "don't run in production" module
def _default_layout(details, require_layout = false)
super
rescue ActionView::MissingTemplate
_find_layout(_layout({}), {})
nil
end
def performed?
response_body
end
......
......@@ -63,11 +63,6 @@ def helpers_dir=(value)
self.helpers_path = Array(value)
end
def inherited(klass)
klass.class_eval { default_helper_module! unless name.blank? }
super
end
# Declares helper accessors for controller attributes. For example, the
# following adds new +name+ and <tt>name=</tt> instance methods to a
# controller and makes them available to the view:
......@@ -101,16 +96,6 @@ def _modules_for_helpers(args)
super(args)
end
def default_helper_module!
module_name = name.sub(/Controller$/, '')
module_path = module_name.underscore
helper module_path
rescue MissingSourceFile => e
raise e unless e.is_missing? "helpers/#{module_path}_helper"
rescue NameError => e
raise e unless e.missing_name? "#{module_name}Helper"
end
# Extract helper names from files in app/helpers/**/*_helper.rb
def all_application_helpers
helpers = []
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册