aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_controller
diff options
context:
space:
mode:
Diffstat (limited to 'actionpack/lib/action_controller')
-rw-r--r--actionpack/lib/action_controller/resources.rb21
-rw-r--r--actionpack/lib/action_controller/routing.rb22
2 files changed, 33 insertions, 10 deletions
diff --git a/actionpack/lib/action_controller/resources.rb b/actionpack/lib/action_controller/resources.rb
index d6c83dabcb..1cfb7c11d0 100644
--- a/actionpack/lib/action_controller/resources.rb
+++ b/actionpack/lib/action_controller/resources.rb
@@ -426,8 +426,10 @@ module ActionController
resource.collection_methods.each do |method, actions|
actions.each do |action|
action_options = action_options_for(action, resource, method)
- map.named_route("#{resource.name_prefix}#{action}_#{resource.plural}", "#{resource.path}/#{action}", action_options)
- map.named_route("formatted_#{resource.name_prefix}#{action}_#{resource.plural}", "#{resource.path}/#{action}.:format", action_options)
+
+ # See http://dev.rubyonrails.org/ticket/8251
+ map.deprecated_named_route("#{action}_#{resource.name_prefix}#{resource.plural}", "#{resource.name_prefix}#{action}_#{resource.plural}", "#{resource.path}/#{action}", action_options)
+ map.deprecated_named_route("formatted_#{action}_#{resource.name_prefix}#{resource.plural}", "formatted_#{resource.name_prefix}#{action}_#{resource.plural}", "#{resource.path}/#{action}.:format", action_options)
end
end
end
@@ -453,11 +455,13 @@ module ActionController
actions.each do |action|
action_options = action_options_for(action, resource, method)
if action == :new
- map.named_route("#{resource.name_prefix}new_#{resource.singular}", resource.new_path, action_options)
- map.named_route("formatted_#{resource.name_prefix}new_#{resource.singular}", "#{resource.new_path}.:format", action_options)
+ # See http://dev.rubyonrails.org/ticket/8251
+ map.deprecated_named_route("new_#{resource.name_prefix}#{resource.singular}", "#{resource.name_prefix}new_#{resource.singular}", resource.new_path, action_options)
+ map.deprecated_named_route("formatted_new_#{resource.name_prefix}#{resource.singular}", "formatted_#{resource.name_prefix}new_#{resource.singular}", "#{resource.new_path}.:format", action_options)
else
- map.named_route("#{resource.name_prefix}#{action}_new_#{resource.singular}", "#{resource.new_path}/#{action}", action_options)
- map.named_route("formatted_#{resource.name_prefix}#{action}_new_#{resource.singular}", "#{resource.new_path}/#{action}.:format", action_options)
+ # See http://dev.rubyonrails.org/ticket/8251
+ map.deprecated_named_route("#{action}_new_#{resource.name_prefix}#{resource.singular}", "#{resource.name_prefix}#{action}_new_#{resource.singular}", "#{resource.new_path}/#{action}", action_options)
+ map.deprecated_named_route("formatted_#{action}_new_#{resource.name_prefix}#{resource.singular}", "formatted_#{resource.name_prefix}#{action}_new_#{resource.singular}", "#{resource.new_path}/#{action}.:format", action_options)
end
end
end
@@ -467,8 +471,9 @@ module ActionController
resource.member_methods.each do |method, actions|
actions.each do |action|
action_options = action_options_for(action, resource, method)
- map.named_route("#{resource.name_prefix}#{action}_#{resource.singular}", "#{resource.member_path}/#{action}", action_options)
- map.named_route("formatted_#{resource.name_prefix}#{action}_#{resource.singular}", "#{resource.member_path}/#{action}.:format",action_options)
+ # See http://dev.rubyonrails.org/ticket/8251
+ map.deprecated_named_route("#{action}_#{resource.name_prefix}#{resource.singular}", "#{resource.name_prefix}#{action}_#{resource.singular}", "#{resource.member_path}/#{action}", action_options)
+ map.deprecated_named_route("formatted_#{action}_#{resource.name_prefix}#{resource.singular}", "formatted_#{resource.name_prefix}#{action}_#{resource.singular}", "#{resource.member_path}/#{action}.:format",action_options)
end
end
diff --git a/actionpack/lib/action_controller/routing.rb b/actionpack/lib/action_controller/routing.rb
index 74f09f815c..f50c085a53 100644
--- a/actionpack/lib/action_controller/routing.rb
+++ b/actionpack/lib/action_controller/routing.rb
@@ -1020,6 +1020,11 @@ module ActionController
@set.add_named_route(name, path, options)
end
+ def deprecated_named_route(name, deprecated_name, path, options = {})
+ named_route(name, path, options)
+ @set.add_deprecated_named_route(name, deprecated_name, path, options) unless deprecated_name == name
+ end
+
# Enables the use of resources in a module by setting the name_prefix, path_prefix, and namespace for the model.
# Example:
#
@@ -1052,7 +1057,7 @@ module ActionController
class NamedRouteCollection #:nodoc:
include Enumerable
- attr_reader :routes, :helpers
+ attr_reader :routes, :helpers, :deprecated_named_routes
def initialize
clear!
@@ -1061,6 +1066,7 @@ module ActionController
def clear!
@routes = {}
@helpers = []
+ @deprecated_named_routes = {}
@module ||= Module.new
@module.instance_methods.each do |selector|
@@ -1074,6 +1080,12 @@ module ActionController
end
def get(name)
+ if @deprecated_named_routes.has_key?(name.to_sym)
+ ActiveSupport::Deprecation.warn(
+ "The named route \"#{name}\" uses a format that has been deprecated. " +
+ "You should use \"#{@deprecated_named_routes[name]}\" instead", caller
+ )
+ end
routes[name.to_sym]
end
@@ -1169,7 +1181,7 @@ module ActionController
self.routes = []
self.named_routes = NamedRouteCollection.new
end
-
+
# Subclasses and plugins may override this method to specify a different
# RouteBuilder instance, so that other route DSL's can be created.
def builder
@@ -1222,10 +1234,16 @@ module ActionController
end
def add_named_route(name, path, options = {})
+ # TODO - is options EVER used?
name = options[:name_prefix] + name.to_s if options[:name_prefix]
named_routes[name.to_sym] = add_route(path, options)
end
+ def add_deprecated_named_route(name, deprecated_name, path, options = {})
+ add_named_route(deprecated_name, path, options)
+ named_routes.deprecated_named_routes[deprecated_name.to_sym] = name
+ end
+
def options_as_params(options)
# If an explicit :controller was given, always make :action explicit
# too, so that action expiry works as expected for things like