提交 192e55c3 编写于 作者: J José Valim

Do not raise an exception if an invalid route was generated automatically.

上级 53592626
......@@ -1286,7 +1286,7 @@ def add_route(action, options) # :nodoc:
action = nil
end
if !options.fetch(:as) { true }
if !options.fetch(:as, true)
options.delete(:as)
else
options[:as] = name_for_action(options[:as], action)
......@@ -1472,8 +1472,16 @@ def name_for_action(as, action) #:nodoc:
[name_prefix, member_name, prefix]
end
candidate = name.select(&:present?).join("_").presence
candidate unless as.nil? && @set.routes.find { |r| r.name == candidate }
if candidate = name.select(&:present?).join("_").presence
# If a name was not explicitly given, we check if it is valid
# and return nil in case it isn't. Otherwise, we pass the invalid name
# forward so the underlying router engine treats it and raises an exception.
if as.nil?
candidate unless @set.routes.find { |r| r.name == candidate } || candidate !~ /\A[_a-z]/i
else
candidate
end
end
end
end
......
......@@ -91,6 +91,7 @@ def self.call(params, request)
match "/local/:action", :controller => "local"
match "/projects/status(.:format)"
match "/404", :to => lambda { |env| [404, {"Content-Type" => "text/plain"}, ["NOT FOUND"]] }
constraints(:ip => /192\.168\.1\.\d\d\d/) do
get 'admin' => "queenbee#index"
......
......@@ -8,7 +8,7 @@ module Delegation
:connection, :columns_hash, :auto_explain_threshold_in_seconds, :to => :klass
def self.delegate_to_scoped_klass(method)
if method.to_s =~ /[a-z]\w*!?/
if method.to_s =~ /\A[a-zA-Z_]\w*[!?]?\z/
module_eval <<-RUBY, __FILE__, __LINE__ + 1
def #{method}(*args, &block)
scoping { @klass.#{method}(*args, &block) }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册