aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_dispatch/routing/mapper.rb
diff options
context:
space:
mode:
authorPiotr Sarnacki <drogus@gmail.com>2010-07-18 19:49:51 +0200
committerPiotr Sarnacki <drogus@gmail.com>2010-09-03 22:59:07 +0200
commit6c95e0f879aafa5921cd7898d5951b9a926d3c9a (patch)
treed327320b3349b8a3359ca7c16e92f72fce2a92a6 /actionpack/lib/action_dispatch/routing/mapper.rb
parente9791bec823e42372eca095b946c93c1712a0613 (diff)
downloadrails-6c95e0f879aafa5921cd7898d5951b9a926d3c9a.tar.gz
rails-6c95e0f879aafa5921cd7898d5951b9a926d3c9a.tar.bz2
rails-6c95e0f879aafa5921cd7898d5951b9a926d3c9a.zip
Add mounted_helpers to routes
mounted_helpers are a bit similar to url_helpers. They're automatically included in controllers for Rails.application and each of mounted Engines. Mounted helper allows to call url_for and named helpers for given application. Given Blog::Engine mounted as blog_engine, there are 2 helpers defined: app and blog_engine. You can call routes for app and engine using those helpers: app.root_url app.url_for(:controller => "foo") blog_engine.posts_path blog_engine.url_for(@post)
Diffstat (limited to 'actionpack/lib/action_dispatch/routing/mapper.rb')
-rw-r--r--actionpack/lib/action_dispatch/routing/mapper.rb5
1 files changed, 3 insertions, 2 deletions
diff --git a/actionpack/lib/action_dispatch/routing/mapper.rb b/actionpack/lib/action_dispatch/routing/mapper.rb
index 88152ac290..ef1bee106a 100644
--- a/actionpack/lib/action_dispatch/routing/mapper.rb
+++ b/actionpack/lib/action_dispatch/routing/mapper.rb
@@ -285,13 +285,14 @@ module ActionDispatch
return unless app.respond_to?(:routes)
_route = @set.named_routes.routes[name.to_sym]
- _router = @set
+ _routes = @set
+ app.routes.define_mounted_helper(name)
app.routes.class_eval do
define_method :_generate_prefix do |options|
prefix_options = options.slice(*_route.segment_keys)
# we must actually delete prefix segment keys to avoid passing them to next url_for
_route.segment_keys.each { |k| options.delete(k) }
- _router.url_helpers.send("#{name}_path", prefix_options)
+ _routes.url_helpers.send("#{name}_path", prefix_options)
end
end
end