Module: ActionDispatch::Routing::Mapper::Base
- Included in:
- ActionDispatch::Routing::Mapper
- Defined in:
- lib/action_dispatch/routing/mapper.rb
Instance Method Summary collapse
- #default_url_options=(options) ⇒ Object (also: #default_url_options)
-
#initialize(set) ⇒ Object
:nodoc:.
-
#match(path, options = nil) ⇒ Object
When you set up a regular route, you supply a series of symbols that Rails maps to parts of an incoming HTTP request.
-
#mount(app, options = nil) ⇒ Object
Mount a Rack-based application to be used within the application.
-
#root(options = {}) ⇒ Object
You can specify what Rails should route “/” to with the root method:.
Instance Method Details
#default_url_options=(options) ⇒ Object Also known as: default_url_options
309 310 311 |
# File 'lib/action_dispatch/routing/mapper.rb', line 309 def () @set. = end |
#initialize(set) ⇒ Object
:nodoc:
245 246 247 |
# File 'lib/action_dispatch/routing/mapper.rb', line 245 def initialize(set) #:nodoc: @set = set end |
#match(path, options = nil) ⇒ Object
When you set up a regular route, you supply a series of symbols that Rails maps to parts of an incoming HTTP request.
match ':controller/:action/:id/:user_id'
Two of these symbols are special: :controller maps to the name of a controller in your application, and :action maps to the name of an action within that controller. Anything other than :controller or :action will be available to the action as part of params.
271 272 273 274 275 |
# File 'lib/action_dispatch/routing/mapper.rb', line 271 def match(path, =nil) mapping = Mapping.new(@set, @scope, path, || {}).to_route @set.add_route(*mapping) self end |
#mount(app, options = nil) ⇒ Object
Mount a Rack-based application to be used within the application.
mount SomeRackApp, :at => "some_route"
Alternatively:
mount(SomeRackApp => "some_route")
All mounted applications come with routing helpers to access them. These are named after the class specified, so for the above example the helper is either some_rack_app_path
or some_rack_app_url
. To customize this helper’s name, use the :as
option:
mount(SomeRackApp => "some_route", :as => "exciting")
This will generate the exciting_path
and exciting_url
helpers which can be used to navigate to this mounted app.
294 295 296 297 298 299 300 301 302 303 304 305 306 307 |
# File 'lib/action_dispatch/routing/mapper.rb', line 294 def mount(app, = nil) if path = .delete(:at) else = app app, path = .find { |k, v| k.respond_to?(:call) } .delete(app) if app end raise "A rack application must be specified" unless path match(path, .merge(:to => app, :anchor => false, :format => false)) self end |
#root(options = {}) ⇒ Object
You can specify what Rails should route “/” to with the root method:
root :to => 'pages#main'
For options, see the match
method’s documentation, as root
uses it internally.
You should put the root route at the top of config/routes.rb
, because this means it will be matched first. As this is the most popular route of most Rails applications, this is beneficial.
258 259 260 |
# File 'lib/action_dispatch/routing/mapper.rb', line 258 def root( = {}) match '/', .reverse_merge(:as => :root) end |