rails 3路由中的连字符资源

时间:2010-11-02 15:41:47

标签: ruby-on-rails ruby-on-rails-3

如何在资源网址中使用连字符? 例如:/my-model//my-model/1。 如果我将路由定义为resources :"my-model",我会收到语法错误,因为rails生成方法def hash_for_my-models_url(options = nil)

3 个答案:

答案 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'方法。