如何在资源上命名路由?

时间:2014-09-08 12:22:40

标签: ruby-on-rails path routing helper

如果我的控制器Home只有一个动作index,我知道我可以写:

get 'home' => 'home#index"

我将自动拥有指定路线home_path

但如果我这样定义它:

resources :home, only: :index

我得到路线home_index_path。为什么这样,如果我使用home_path约定,如何创建命名路由resources

2 个答案:

答案 0 :(得分:1)

Rails为routes文件中的所有资源定义了标准命名约定。请参阅Rails Guide on Resource Routing

您还可以运行bundle exec rake routes查看您在应用中定义的路线的名称。

对于您的示例resources :home, only: :index"homes#index"操作的指定路线为homes_pathhomes_url

<强>更新

您可能更喜欢具有resource :home, only: :showhome_path命名路线的home_url。访问家庭资源(单数)的路径也是/home,而家庭资源(复数)索引是/homes

答案 1 :(得分:1)

可以使用带轨道路由的单一名称控制器。尝试使用:

resource :home, :controller => 'home'