1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

deprecate passing a string for both the beginning path and :path option

This commit is contained in:
Aaron Patterson 2015-08-14 11:55:50 -07:00
parent b6146b0d96
commit b10b279b97
2 changed files with 20 additions and 2 deletions

View file

@ -5,6 +5,7 @@ require 'active_support/core_ext/enumerable'
require 'active_support/core_ext/array/extract_options'
require 'active_support/core_ext/module/remove_method'
require 'active_support/inflector'
require 'active_support/deprecation'
require 'action_dispatch/routing/redirection'
require 'action_dispatch/routing/endpoint'
@ -1538,7 +1539,21 @@ module ActionDispatch
path_types = paths.group_by(&:class)
path_types.fetch(String, []).each do |_path|
route_options = options.dup
process_path(route_options, controller, _path, option_path || _path, to, via, formatted, anchor, options_constraints)
if _path && option_path
ActiveSupport::Deprecation.warn <<-eowarn
Specifying strings for both :path and the route path is deprecated. Change things like this:
match #{_path.inspect}, :path => #{option_path.inspect}
to this:
match #{option_path.inspect}, :as => #{_path.inspect}, :action => #{path.inspect}
eowarn
route_options[:action] = _path
route_options[:as] = _path
_path = option_path
end
process_path(route_options, controller, _path, _path, to, via, formatted, anchor, options_constraints)
end
path_types.fetch(Symbol, []).each do |action|

View file

@ -361,9 +361,12 @@ class TestRoutingMapper < ActionDispatch::IntegrationTest
end
def test_pagemarks
tc = self
draw do
scope "pagemark", :controller => "pagemarks", :as => :pagemark do
get "new", :path => "build"
tc.assert_deprecated do
get "new", :path => "build"
end
post "create", :as => ""
put "update"
get "remove", :action => :destroy, :as => :remove