Ruby on rails 如何在rails 2.3路由中指定默认值?
在我的Rails 2.3.11应用程序中,我想指定路由的默认格式为:xml。据我所知,我可以使用:默认值 文件中明确指出,这应该有效: 还可以通过为路由提供哈希来定义路由中的其他默认值 默认值选项。这甚至适用于不适用的参数 在路由的其他位置显式定义 但如果我这样做,我会得到这个错误:Ruby on rails 如何在rails 2.3路由中指定默认值?,ruby-on-rails,url-routing,Ruby On Rails,Url Routing,在我的Rails 2.3.11应用程序中,我想指定路由的默认格式为:xml。据我所知,我可以使用:默认值 文件中明确指出,这应该有效: 还可以通过为路由提供哈希来定义路由中的其他默认值 默认值选项。这甚至适用于不适用的参数 在路由的其他位置显式定义 但如果我这样做,我会得到这个错误: /Users/simon/myproject/vendor/rails/actionpack/lib/action_controller/routing/builder.rb:107:in `assign_rout
/Users/simon/myproject/vendor/rails/actionpack/lib/action_controller/routing/builder.rb:107:in `assign_route_options':
format: No matching segment exists; cannot assign default (ArgumentError)
我看到有人提出了这个问题;被调查者指出,它适用于资源,但不适用于命名路线;管理员错误地将其标记为已修复,因为他已在资源上对其进行了测试。呵呵
其他地方建议我这样做:
map.connect '/myroute', :controller => 'mycontroller',
:action => 'myaction',
:format => :xml
但是如果我测试它
assert_generates '/myroute', :controller => 'mycontroller',
:action => 'myaction'
我被告知没有路由匹配:controller=>'mycontroller',:action=>'myaction'-我必须手动输入格式,因此它不是默认的
如何在rails 2.3路由中指定默认值?我是否需要让他们重新打开罚单并实际修复错误?现在Rails 3出炉了,这种情况还有希望吗?嗯,这太奇怪了。我在命名路由中使用了:defaults散列,它对我很有效。你能试着改用命名路由,看看它是否有效吗
map.myroute '/myroute', :controller => 'mycontroller',
:action => 'myaction',
:defaults => {:format => :xml}
嗯,这太奇怪了。我在命名路由中使用了:defaults散列,它对我很有效。你能试着改用命名路由,看看它是否有效吗
map.myroute '/myroute', :controller => 'mycontroller',
:action => 'myaction',
:defaults => {:format => :xml}
2-3-stable没有补丁、文档或其他内容,这很可悲。2-3-stable没有补丁、文档或其他内容,这很可悲。