0

路线.rb

resources :home do
 get 'download', :on => :collection
end

耙路线

download_home_index GET    /home/download(.:format)     home#download
home_index GET             /home(.:format)              home#index
....

home_controller.rb

def index
end

当我转到 http://localhost:3000/home/download 时,即使 home_controller 中没有“下载”操作,它也可以工作。我很困惑为什么即使没有动作,它也不会抱怨缺少动作。

我很好奇,所以我添加resources :homes到 routes.rb 并rake routes给了我以下内容:

homes GET    /homes(.:format)             homes#index

相比之下,它不是 home_index 而之前是 home_index。是否有一些轨道魔术正在发生?欣赏一些解释。

4

1 回答 1

0

对于第一个问题,如果您对动作有看法,那么您并不严格需要定义动作(但您确实应该这样做)。

对于第二个问题,您定义了resources :homesvs resources :home,因此生成的路线不同。resources :home是不正确的。

于 2012-06-24T09:49:13.047 回答