如果我的控制器Home
只有一个动作index
,我知道我可以写:
get 'home' => 'home#index"
我将自动拥有指定路线home_path
。
但如果我这样定义它:
resources :home, only: :index
我得到路线home_index_path
。为什么这样,如果我使用home_path
约定,如何创建命名路由resources
。
答案 0 :(得分:1)
Rails为routes文件中的所有资源定义了标准命名约定。请参阅Rails Guide on Resource Routing。
您还可以运行bundle exec rake routes
查看您在应用中定义的路线的名称。
对于您的示例resources :home, only: :index
,"homes#index"
操作的指定路线为homes_path
或homes_url
。
<强>更新强>:
您可能更喜欢具有resource :home, only: :show
或home_path
命名路线的home_url
。访问家庭资源(单数)的路径也是/home
,而家庭资源(复数)索引是/homes
。
答案 1 :(得分:1)
可以使用带轨道路由的单一名称控制器。尝试使用:
resource :home, :controller => 'home'