我做了
rails generate controller home index
但它将此行添加到我的routes.rb
get "home/index"
我认为Rails可以自动从URL中推断控制器/方法吗?为什么我需要指定每个获取/发布页面?
这是我的完整routes.rb文件:
Callisto2::Application.routes.draw do
root :to => "home#index"
resources :assets
end
root“/”工作正常。 / assets / *也是如此。
/ home / index有什么问题?我收到错误:
路由错误
No route matches [GET] "/home/index"
尝试运行rake路线以获取有关可用路线的更多信息。
rake routes
(以apache用户身份运行)给出了以下输出:
root / home#index
感谢您的任何澄清。不知道我错过了什么。
编辑:我没有说清楚:我从routes.rb手动删除了get / home / index以保持该文件干净。
答案 0 :(得分:4)
Rails用于在路径文件的底部添加所谓的catch all route:
match ':controller(/:action(/:id(.:format)))'
这些网址没有任何“自动”或神奇的信息,只是每个铁路应用都是在路线中开始使用此路线.rb
这已经失宠了,至少部分是因为它让一切都可以获得,而
resources :books
使用适当的http动词添加每个路由。显式列出路由也比rails启动时简单得多。
答案 1 :(得分:1)
如果您的控制器为home
且操作为index
,则您的路径仅为/home
。
您可以找到更多信息here。