diff options
Diffstat (limited to 'actionpack')
5 files changed, 35 insertions, 24 deletions
diff --git a/actionpack/lib/action_dispatch/routing.rb b/actionpack/lib/action_dispatch/routing.rb index c6e942555f..3d9084a27e 100644 --- a/actionpack/lib/action_dispatch/routing.rb +++ b/actionpack/lib/action_dispatch/routing.rb @@ -136,20 +136,32 @@ module ActionDispatch # # == HTTP Methods # - # With conditions you can define restrictions on routes. Currently the only valid condition is <tt>:method</tt>. + # Using the <tt>:via</tt> option when specifying a route allows you to restrict it to a specific HTTP method. + # Possible values are <tt>:post</tt>, <tt>:get</tt>, <tt>:put</tt>, <tt>:delete</tt> and <tt>:any</tt>. + # If your route needs to respond to more than one method you can use an array, e.g. <tt>[ :get, :post ]</tt>. + # The default value is <tt>:any</tt> which means that the route will respond to any of the HTTP methods. # - # * <tt>:method</tt> - Allows you to specify which HTTP method(s) can access the route. Possible values are - # <tt>:post</tt>, <tt>:get</tt>, <tt>:put</tt>, <tt>:delete</tt> and <tt>:any</tt>. Use an array to specify more - # than one method, e.g. <tt>[ :get, :post ]</tt>. The default value is <tt>:any</tt>, <tt>:any</tt> means that any - # method can access the route. + # Examples: # - # Example: + # match 'post/:id' => 'posts#show', :via => :get + # match 'post/:id' => "posts#create_comment', :via => :post + # + # Now, if you POST to <tt>/posts/:id</tt>, it will route to the <tt>create_comment</tt> action. A GET on the same + # URL will route to the <tt>show</tt> action. + # + # === HTTP helper methods # - # get 'post/:id' => 'posts#show' + # An alternative method of specifying which HTTP method a route should respond to is to use the helper + # methods <tt>get</tt>, <tt>post</tt>, <tt>put</tt> and <tt>delete</tt>. + # + # Examples: + # + # get 'post/:id' => 'posts#show' # post 'post/:id' => "posts#create_comment' # - # Now, if you POST to <tt>/posts/:id</tt>, it will route to the <tt>create_comment</tt> action. A GET on the same - # URL will route to the <tt>show</tt> action. + # This syntax is less verbose and the intention is more apparent to someone else reading your code, + # however if your route needs to respond to more than one HTTP method (or all methods) then using the + # <tt>:via</tt> option on <tt>match</tt> is preferable. # # == Reloading routes # @@ -208,11 +220,11 @@ module ActionDispatch autoload :RouteSet, 'action_dispatch/routing/route_set' autoload :UrlFor, 'action_dispatch/routing/url_for' - SEPARATORS = %w( / . ? ) - HTTP_METHODS = [:get, :head, :post, :put, :delete, :options] + SEPARATORS = %w( / . ? ) #:nodoc: + HTTP_METHODS = [:get, :head, :post, :put, :delete, :options] #:nodoc: # A helper module to hold URL related helpers. - module Helpers + module Helpers #:nodoc: include ActionController::PolymorphicRoutes end end diff --git a/actionpack/lib/action_dispatch/routing/deprecated_mapper.rb b/actionpack/lib/action_dispatch/routing/deprecated_mapper.rb index b0545279b1..e8c2e74314 100644 --- a/actionpack/lib/action_dispatch/routing/deprecated_mapper.rb +++ b/actionpack/lib/action_dispatch/routing/deprecated_mapper.rb @@ -75,7 +75,7 @@ module ActionDispatch # supplying you with methods to create them in your routes.rb file. # # Read more about REST at http://en.wikipedia.org/wiki/Representational_State_Transfer - class DeprecatedMapper #:doc: + class DeprecatedMapper #:nodoc: def initialize(set) #:nodoc: @set = set end diff --git a/actionpack/lib/action_dispatch/routing/mapper.rb b/actionpack/lib/action_dispatch/routing/mapper.rb index 8a84afd315..74d0297898 100644 --- a/actionpack/lib/action_dispatch/routing/mapper.rb +++ b/actionpack/lib/action_dispatch/routing/mapper.rb @@ -4,7 +4,7 @@ require 'active_support/core_ext/object/blank' module ActionDispatch module Routing class Mapper - class Constraints + class Constraints #:nodoc: def self.new(app, constraints = []) if constraints.any? super(app, constraints) @@ -32,7 +32,7 @@ module ActionDispatch end end - class Mapping + class Mapping #:nodoc: IGNORE_OPTIONS = [:to, :as, :controller, :action, :via, :on, :constraints, :defaults, :only, :except, :anchor] def initialize(set, scope, args) @@ -180,7 +180,7 @@ module ActionDispatch end module Base - def initialize(set) + def initialize(set) #:nodoc: @set = set end @@ -252,7 +252,7 @@ module ActionDispatch end module Scoping - def initialize(*args) + def initialize(*args) #:nodoc: @scope = {} super end @@ -373,7 +373,7 @@ module ActionDispatch end module Resources - CRUD_ACTIONS = [:index, :show, :create, :update, :destroy] + CRUD_ACTIONS = [:index, :show, :create, :update, :destroy] #:nodoc: class Resource #:nodoc: def self.default_actions @@ -495,7 +495,7 @@ module ActionDispatch end end - def initialize(*args) + def initialize(*args) #:nodoc: super @scope[:resources_path_names] = @set.resources_path_names end @@ -667,7 +667,7 @@ module ActionDispatch end protected - def parent_resource + def parent_resource #:nodoc: @scope[:scope_level_resource] end diff --git a/actionpack/lib/action_dispatch/routing/route_set.rb b/actionpack/lib/action_dispatch/routing/route_set.rb index bb689beed9..c8e4371bb7 100644 --- a/actionpack/lib/action_dispatch/routing/route_set.rb +++ b/actionpack/lib/action_dispatch/routing/route_set.rb @@ -11,7 +11,7 @@ module ActionDispatch PARAMETERS_KEY = 'action_dispatch.request.path_parameters' - class Dispatcher + class Dispatcher #:nodoc: def initialize(options={}) @defaults = options[:defaults] @glob_param = options.delete(:glob) @@ -281,7 +281,7 @@ module ActionDispatch route end - class Generator + class Generator #:nodoc: attr_reader :options, :recall, :set, :script_name, :named_route def initialize(options, recall, set, extras = false) diff --git a/actionpack/lib/action_dispatch/routing/url_for.rb b/actionpack/lib/action_dispatch/routing/url_for.rb index b8c02f402c..dd86aa3e87 100644 --- a/actionpack/lib/action_dispatch/routing/url_for.rb +++ b/actionpack/lib/action_dispatch/routing/url_for.rb @@ -4,8 +4,7 @@ module ActionDispatch # is also possible: an URL can be generated from one of your routing definitions. # URL generation functionality is centralized in this module. # - # See ActionDispatch::Routing and ActionController::Resources for general - # information about routing and routes.rb. + # See ActionDispatch::Routing for general information about routing and routes.rb. # # <b>Tip:</b> If you need to generate URLs from your models or some other place, # then ActionController::UrlFor is what you're looking for. Read on for |