Verduidelijking van routes voor het verzamelen van rails

routes.rb

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

rake routes

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

home_controller.rb

def index
end

Wanneer ik naar http://localhost: 3000/home/download ga, werkt het ook al is er geen "download" -actie in de home_controller. Ik ben verward waarom zelfs zonder de actie, het geen ontbrekende actie klagen.

Ik was nieuwsgierig dus ik heb resources toegevoegd: homes aan routes.rb en rake routes gaf me het volgende:

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

Ter vergelijking: het is geen homes_index terwijl het eerder home_index was. Is er wat magie op rails aan de hand? Waardeer wat uitleg.

0

1 antwoord

Voor de eerste vraag, als u een mening hebt over de actie, hebt u de gedefinieerde actie strikt niet nodig (maar u zou dit echt moeten doen).

Voor de tweede vraag hebt u resources: homes versus resources: home gedefinieerd. Daarom zijn de gegenereerde routes anders. bronnen: home is onjuist.

0
toegevoegd