提交 ac9f8e1b 编写于 作者: R Rizwan Reza 提交者: Jeremy Kemper

Router accepts member routes on resource. [#4624 state:resolved]

上级 83729e2f
......@@ -622,13 +622,22 @@ def collection
end
def member
unless @scope[:scope_level] == :resources
raise ArgumentError, "can't use member outside resources scope"
unless [:resources, :resource].include?(@scope[:scope_level])
raise ArgumentError, "You can't use member action outside resources and resource scope."
end
with_scope_level(:member) do
scope(':id', :name_prefix => parent_resource.member_name, :as => "") do
yield
case @scope[:scope_level]
when :resources
with_scope_level(:member) do
scope(':id', :name_prefix => parent_resource.member_name, :as => "") do
yield
end
end
when :resource
with_scope_level(:member) do
scope(':id', :as => "") do
yield
end
end
end
end
......
......@@ -28,6 +28,10 @@ def self.matches?(request)
post :reset
resource :info
member do
get :crush
end
end
match 'account/logout' => redirect("/logout"), :as => :logout_redirect
......@@ -352,6 +356,15 @@ def test_session_info_nested_singleton_resource
end
end
def test_member_on_resource
with_test_routes do
get '/session/1/crush'
assert_equal 'sessions#crush', @response.body
assert_equal '/session/1/crush', crush_session_path(1)
end
end
def test_redirect_modulo
with_test_routes do
get '/account/modulo/name'
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册