如何在资源网址中使用连字符?
例如:/my-model/
或/my-model/1
。
如果我将路由定义为resources :"my-model"
,我会收到语法错误,因为rails生成方法def hash_for_my-models_url(options = nil)
。
答案 0 :(得分:14)
我找到了解决方案:
resources "my-models", :as => :my_models, :controller => :my_models
<强>更新强>
正如Timo Saloranta在评论中所说,在最新的Rails 3版本中没有:controller => :my_models
。
答案 1 :(得分:2)
您可以使用:as
选项配置带连字符的URL的资源丰富的路由:
map.resources :my_model, :as => "my-model"
结果
my_model_index GET /my-model(.:format) {:action=>"index",
:controller=>"my_model"}
...等...
答案 2 :(得分:0)
您是否尝试过自定义路线?
map.connect "/my-model/:id", :controller => 'my-model-controller', :action => 'read'
这会调用'my-model-controller.rb'的'read'方法。