preserve :only & :except options on resources
This commit is contained in:
parent
56b03373a8
commit
0098452976
|
@ -275,14 +275,17 @@ module Rails
|
|||
end
|
||||
|
||||
def to_route_code
|
||||
# preserve :only & :except options
|
||||
copied_options = @options.reject { |k,v| ![:only, :except].member?(k) }
|
||||
copied_options_str = copied_options.empty? ? '' : ', ' + copied_options.inspect.gsub(/\A\{|\}\z/, '')
|
||||
|
||||
if !@children.empty? || @options.has_key?(:collection) || @options.has_key?(:member)
|
||||
prefix = ["#{route_method} :#{@name} do"]
|
||||
prefix = ["#{route_method} :#{@name}#{copied_options_str} do"]
|
||||
lines = prefix + custom_methods + [@children.map {|r| r.to_route_code}.join("\n"), "end"]
|
||||
|
||||
indent_lines(lines)
|
||||
else
|
||||
base = "#{route_method} :%s"
|
||||
base = "#{route_method} :%s#{copied_options_str}"
|
||||
indent_lines [base % [@name]]
|
||||
end
|
||||
end
|
||||
|
|
|
@ -139,4 +139,14 @@ end
|
|||
|
||||
assert_equal new_routes_code, result
|
||||
end
|
||||
|
||||
def test_preserves_resources_except_option
|
||||
route = Rails::Upgrading::FakeResourceRoute.new("hats", :except => [:index])
|
||||
assert_equal "resources :hats, :except=>[:index]", route.to_route_code
|
||||
end
|
||||
|
||||
def test_preserves_resources_only_option
|
||||
route = Rails::Upgrading::FakeResourceRoute.new("hats", :only => :show)
|
||||
assert_equal "resources :hats, :only=>:show", route.to_route_code
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue