aboutsummaryrefslogtreecommitdiffstats
path: root/actionview/lib/action_view/view_paths.rb
diff options
context:
space:
mode:
Diffstat (limited to 'actionview/lib/action_view/view_paths.rb')
-rw-r--r--actionview/lib/action_view/view_paths.rb20
1 files changed, 16 insertions, 4 deletions
diff --git a/actionview/lib/action_view/view_paths.rb b/actionview/lib/action_view/view_paths.rb
index d96222e6dd..1fc4c7aa43 100644
--- a/actionview/lib/action_view/view_paths.rb
+++ b/actionview/lib/action_view/view_paths.rb
@@ -16,14 +16,26 @@ module ActionView
module ClassMethods
def _prefixes
@_prefixes ||= begin
- return _local_prefixes if superclass.abstract?
- _local_prefixes + superclass._prefixes
+ deprecated_prefixes = handle_deprecated_parent_prefixes and return deprecated_prefixes
+
+ return local_prefixes if superclass.abstract?
+ local_prefixes + superclass._prefixes
end
end
- def _local_prefixes
+ private
+
+ # Override this method in your controller if you want to change paths prefixes for finding views.
+ # Prefixes defined here will still be added to parents' <tt>::_prefixes</tt>.
+ def local_prefixes
[controller_path]
end
+
+ def handle_deprecated_parent_prefixes # TODO: remove in 4.3/5.0.
+ return unless respond_to?(:parent_prefixes)
+ ActiveSupport::Deprecation.warn "Overriding ActionController::Base::parent_prefixes is deprecated, override ::local_prefixes or ::_prefixes instead."
+ local_prefixes + parent_prefixes
+ end
end
# The prefixes used in render "foo" shortcuts.
@@ -88,4 +100,4 @@ module ActionView
end
end
end
-end
+end \ No newline at end of file