aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_dispatch/routing/route_set.rb
diff options
context:
space:
mode:
authorCarl Lerche <carllerche@mac.com>2010-03-04 21:59:42 -0800
committerCarl Lerche <carllerche@mac.com>2010-03-04 22:00:30 -0800
commit9a17416d8bda0df0a6961e547c3cf1d677e66b5e (patch)
tree4c6dba8298cc9f1e1224521edc696e66aeda82f9 /actionpack/lib/action_dispatch/routing/route_set.rb
parent48672cd1997618f21f50e1204e60dc681e647ddb (diff)
downloadrails-9a17416d8bda0df0a6961e547c3cf1d677e66b5e.tar.gz
rails-9a17416d8bda0df0a6961e547c3cf1d677e66b5e.tar.bz2
rails-9a17416d8bda0df0a6961e547c3cf1d677e66b5e.zip
Tweak out url_for uses :script_name and add some tests
Diffstat (limited to 'actionpack/lib/action_dispatch/routing/route_set.rb')
-rw-r--r--actionpack/lib/action_dispatch/routing/route_set.rb12
1 files changed, 6 insertions, 6 deletions
diff --git a/actionpack/lib/action_dispatch/routing/route_set.rb b/actionpack/lib/action_dispatch/routing/route_set.rb
index 26189329c2..a53d8067dd 100644
--- a/actionpack/lib/action_dispatch/routing/route_set.rb
+++ b/actionpack/lib/action_dispatch/routing/route_set.rb
@@ -209,29 +209,27 @@ module ActionDispatch
end
end
- attr_accessor :routes, :named_routes
+ attr_accessor :routes, :named_routes, :mount_point
attr_accessor :disable_clear_and_finalize, :resources_path_names
- attr_accessor :script_name
def self.default_resources_path_names
{ :new => 'new', :edit => 'edit' }
end
- def initialize
+ def initialize(options = {})
self.routes = []
self.named_routes = NamedRouteCollection.new
self.resources_path_names = self.class.default_resources_path_names.dup
self.controller_namespaces = Set.new
+ self.mount_point = options[:mount_point]
@disable_clear_and_finalize = false
clear!
end
- def draw(options = {}, &block)
+ def draw(&block)
clear! unless @disable_clear_and_finalize
- @script_name = options[:script_name]
-
mapper = Mapper.new(self)
if block.arity == 1
mapper.instance_exec(DeprecatedMapper.new(self), &block)
@@ -341,6 +339,7 @@ module ActionDispatch
def generate(options, recall = {}, method = :generate)
options, recall = options.dup, recall.dup
+ script_name = options.delete(:script_name) || mount_point
named_route = options.delete(:use_route)
options = options_as_params(options)
@@ -406,6 +405,7 @@ module ActionDispatch
[path, params.keys]
elsif path
path << "?#{params.to_query}" if params.any?
+ path = "#{script_name}#{path}"
path
else
raise ActionController::RoutingError, "No route matches #{options.inspect}"