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 でしたが、これは homes_index ではありません。いくつかのレールマジックが起こっていますか? いくつかの説明に感謝します。

4

1 に答える 1

0

最初の質問については、アクションのビューがある場合、アクションを厳密に定義する必要はありません (ただし、実際には定義する必要があります)。

2 番目の質問では、resources :homesvsを定義resources :homeしたため、生成されるルートは異なります。resources :home間違っています。

于 2012-06-24T09:49:13.047 に答える