提交 771d2f91 编写于 作者: A Andrew White 提交者: José Valim

Allow symbols for :path resource(s) option [#5306 state:resolved]

Signed-off-by: NJosé Valim <jose.valim@gmail.com>
上级 43291469
...@@ -473,7 +473,7 @@ class Resource #:nodoc: ...@@ -473,7 +473,7 @@ class Resource #:nodoc:
def initialize(entities, options = {}) def initialize(entities, options = {})
@name = entities.to_s @name = entities.to_s
@path = options.delete(:path) || @name @path = (options.delete(:path) || @name).to_s
@controller = (options.delete(:controller) || @name).to_s @controller = (options.delete(:controller) || @name).to_s
@as = options.delete(:as) @as = options.delete(:as)
@options = options @options = options
...@@ -537,7 +537,7 @@ class SingletonResource < Resource #:nodoc: ...@@ -537,7 +537,7 @@ class SingletonResource < Resource #:nodoc:
def initialize(entities, options) def initialize(entities, options)
@name = entities.to_s @name = entities.to_s
@path = options.delete(:path) || @name @path = (options.delete(:path) || @name).to_s
@controller = (options.delete(:controller) || plural).to_s @controller = (options.delete(:controller) || plural).to_s
@as = options.delete(:as) @as = options.delete(:as)
@options = options @options = options
......
...@@ -385,6 +385,9 @@ def self.matches?(request) ...@@ -385,6 +385,9 @@ def self.matches?(request)
end end
end end
resources :wiki_pages, :path => :pages
resource :wiki_account, :path => :my_account
scope :only => :show do scope :only => :show do
namespace :only do namespace :only do
resources :sectors, :only => :index do resources :sectors, :only => :index do
...@@ -1984,6 +1987,22 @@ def test_resource_constraints_are_pushed_to_scope ...@@ -1984,6 +1987,22 @@ def test_resource_constraints_are_pushed_to_scope
end end
end end
def test_resources_path_can_be_a_symbol
with_test_routes do
get '/pages'
assert_equal 'wiki_pages#index', @response.body
assert_equal '/pages', wiki_pages_path
get '/pages/Ruby_on_Rails'
assert_equal 'wiki_pages#show', @response.body
assert_equal '/pages/Ruby_on_Rails', wiki_page_path(:id => 'Ruby_on_Rails')
get '/my_account'
assert_equal 'wiki_accounts#show', @response.body
assert_equal '/my_account', wiki_account_path
end
end
private private
def with_test_routes def with_test_routes
yield yield
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册