如果我在routes.rb中执行map.resources :users
,那么我获得的路由(。:format)在每个路由的末尾(rake路由)。
如何在rails 2.3中摆脱这种情况?
我非常肯定在3.1.1中我可以做类似的事情:format => false。这可以在2.3中找到吗?我可以做模仿的猴子补丁:format => false?
感谢。
答案 0 :(得分:1)
猴子打了补丁。等等。我真的,真的想要改变默认行为,但考虑到潜在的未来开发者的敏感性。
map.resource(s) ..., :format=>false
现在不包含路线中的格式
配置/初始化/ resources.rb:
module ActionController
module Resources
private
def map_resource_routes(map, resource, action, route_path, route_name = nil, method = nil, resource_options = {} )
if resource.has_action?(action)
action_options = action_options_for(action, resource, method, resource_options)
formatted_route_path = (resource.options[:format] == false ? route_path : "#{route_path}.:format")
if route_name && @set.named_routes[route_name.to_sym].nil?
map.named_route(route_name, formatted_route_path, action_options)
else
map.connect(formatted_route_path, action_options)
end
end
end
end
end
我所做的改变是:
formatted_route_path = (resource.options[:format] == false ? route_path : "#{route_path}.:format")
以前只是formatted_route_path = "#{route_path}.:format"
为了让它适用于所有路线,在routes.rb中,我只是用map.with_options :format=>false do |map| ... end
包裹所有路线