提交 0809c675 编写于 作者: A Aaron Patterson

remove the :path feature to redirects, since it cannot work

上级 a8a42648
...@@ -68,23 +68,15 @@ def redirect(*args, &block) ...@@ -68,23 +68,15 @@ def redirect(*args, &block)
def options_proc(options) def options_proc(options)
proc do |params, request| proc do |params, request|
path = if options[:path].nil? url_options = {
request.path
elsif params.empty? || !options[:path].match(/%\{\w*\}/)
options.delete(:path)
else
(options.delete(:path) % params)
end
default_options = {
:protocol => request.protocol, :protocol => request.protocol,
:host => request.host, :host => request.host,
:port => request.optional_port, :port => request.optional_port,
:path => path, :path => request.path,
:params => request.query_parameters :params => request.query_parameters
} }.merge options
ActionDispatch::Http::URL.url_for(options.reverse_merge(default_options)) ActionDispatch::Http::URL.url_for url_options
end end
end end
......
...@@ -62,13 +62,8 @@ def self.call(params, request) ...@@ -62,13 +62,8 @@ def self.call(params, request)
match 'secure', :to => redirect("/secure/login") match 'secure', :to => redirect("/secure/login")
match 'mobile', :to => redirect(:subdomain => 'mobile') match 'mobile', :to => redirect(:subdomain => 'mobile')
match 'documentation', :to => redirect(:domain => 'example-documentation.com', :path => '')
match 'new_documentation', :to => redirect(:path => '/documentation/new')
match 'super_new_documentation', :to => redirect(:host => 'super-docs.com') match 'super_new_documentation', :to => redirect(:host => 'super-docs.com')
match 'stores/:name', :to => redirect(:subdomain => 'stores', :path => '/%{name}')
match 'stores/:name(*rest)', :to => redirect(:subdomain => 'stores', :path => '/%{name}%{rest}')
match 'youtube_favorites/:youtube_id/:name', :to => redirect(YoutubeFavoritesRedirector) match 'youtube_favorites/:youtube_id/:name', :to => redirect(YoutubeFavoritesRedirector)
constraints(lambda { |req| true }) do constraints(lambda { |req| true }) do
...@@ -711,20 +706,6 @@ def test_redirect_hash_with_subdomain ...@@ -711,20 +706,6 @@ def test_redirect_hash_with_subdomain
end end
end end
def test_redirect_hash_with_domain_and_path
with_test_routes do
get '/documentation'
verify_redirect 'http://www.example-documentation.com'
end
end
def test_redirect_hash_with_path
with_test_routes do
get '/new_documentation'
verify_redirect 'http://www.example.com/documentation/new'
end
end
def test_redirect_hash_with_host def test_redirect_hash_with_host
with_test_routes do with_test_routes do
get '/super_new_documentation?section=top' get '/super_new_documentation?section=top'
...@@ -732,20 +713,6 @@ def test_redirect_hash_with_host ...@@ -732,20 +713,6 @@ def test_redirect_hash_with_host
end end
end end
def test_redirect_hash_path_substitution
with_test_routes do
get '/stores/iernest'
verify_redirect 'http://stores.example.com/iernest'
end
end
def test_redirect_hash_path_substitution_with_catch_all
with_test_routes do
get '/stores/iernest/products'
verify_redirect 'http://stores.example.com/iernest/products'
end
end
def test_redirect_class def test_redirect_class
with_test_routes do with_test_routes do
get '/youtube_favorites/oHg5SJYRHA0/rick-rolld' get '/youtube_favorites/oHg5SJYRHA0/rick-rolld'
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册