Ruby on Rails | Screencasts | Download | Documentation | Weblog | Community | Source

Changeset 4733

Show
Ignore:
Timestamp:
08/09/06 00:02:08 (2 years ago)
Author:
rick
Message:

Add RoutingError exception when RouteSet fails to generate a path from a Named Route. [Rick Olson]

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/actionpack/CHANGELOG

    r4728 r4733  
    11*SVN* 
    22 
    3 <<<<<<< .mine 
     3* Add RoutingError exception when RouteSet fails to generate a path from a Named Route. [Rick Olson] 
     4 
    45* Replace Reloadable with Reloadable::Deprecated. [Nicholas Seckar] 
    56 
    6 ======= 
    77* Deprecation: check whether instance variables have been monkeyed with before assigning them to deprecation proxies. Raises a RuntimeError if so. [Jeremy Kemper] 
    88 
     
    1111* Deprecation! @params, @session, @flash will be removed after 1.2. Use the corresponding instance methods instead. You'll get printed warnings during tests and logged warnings in dev mode when you access either instance variable directly. [Jeremy Kemper] 
    1212 
    13 >>>>>>> .r4727 
    1413* Make Routing noisy when an anchor regexp is assigned to a segment. #5674 [francois.beausoleil@gmail.com] 
    1514 
  • trunk/actionpack/lib/action_controller/routing.rb

    r4700 r4733  
    982982 
    983983      def generate(options, recall = {}, method=:generate) 
    984         if options[:use_route] 
     984        named_route_name = options.delete(:use_route) 
     985        if named_route_name 
    985986          options = options.dup 
    986           named_route = named_routes[options.delete(:use_route)
     987          named_route = named_routes[named_route_name
    987988          options = named_route.parameter_shell.merge(options) 
    988989        end 
     
    10071008     
    10081009        if named_route 
    1009           return named_route.generate(options, merged, expire_on) 
     1010          path = named_route.generate(options, merged, expire_on)  
     1011          raise RoutingError, "#{named_route_name}_url failed to generate from #{options.inspect}, missing: #{(named_route.significant_keys - options.keys).inspect}" if path.nil? 
     1012          return path 
    10101013        else 
    10111014          merged[:action] ||= 'index' 
     
    10151018          action = merged[:action] 
    10161019 
    1017           raise "Need controller and action!" unless controller && action 
     1020          raise RoutingError, "Need controller and action!" unless controller && action 
    10181021          # don't use the recalled keys when determining which routes to check 
    10191022          routes = routes_by_controller[controller][action][options.keys.sort_by { |x| x.object_id }]