我以这种方式在我的控制器中定义每个动作(在routes.rb
中):
resources :home do
collection do
get "home/index"
get "home/about_me"
get "home/contact"
end
end
如果我使用匹配动作 about_me ,我必须使用
resources :home do
collection do
get "home/index"
get "home/about_me"
get "home/contact"
end
end
match 'about-me' => 'home#about_me'
是否存在,如何将match
规则直接添加到集合中?我的意思是这样的:
resources :home do
collection do
get "home/index"
get "home/about_me", match => "about-me"
get "home/contact"
end
end
我还有一个问题 - 当我在routes.rb
第二个代码块中使用时,所以当我设置URL地址about-me
时,地址工作正常,但是当我在那里输入时home/about_me
,所以我收到了错误
未知操作:无法找到HomeController 的操作'show'。
导致此错误的原因是什么?
答案 0 :(得分:3)
我认为这里的问题是,当您的路由嵌套在home/
内时,它们的前缀为resources :home
。试试这个:
resources :home do
collection do
get :index
get :about_me
get :contact
end
end
此外,如果您在设置路线时遇到问题,请在控制台中输入rake routes
。这将生成您的应用程序的路由以及相应的路径和控制器。
resources :home do
collection do
get 'about_me' => 'about-me'
end
end