2016-07-23 14 views
1

Ich arbeite an einer einfachen Reservierungsanwendung. Hier sind meine RoutenSo ändern Sie Standardpfad/URL in Routen in Rails 4

resources :users do 
    get 'reservations', on: :member 
end 

resources :listings do 
    resources :reservations 
end 

Wenn ich versuche, um eine Reservierung zu machen, Aktion reservations#new bringt mich zu reservations_path. Natürlich bekomme ich Fehler, da dieser Pfad nicht existiert. Ich möchte Aktion new, um mich zu listing_reservations_path stattdessen zu nehmen. Ich hüpfte es wird automatisch getan werden, da resources :reservations in verschachtelten Ressourcen ist. Ich lese über Routen und habe viele Dinge ausprobiert, finde aber keine funktionierende Methode. Ist es möglich?

+0

erste Überprüfung Routen .. durch Rake Routen .. – Vishal

+0

, was Sie von Aktion 'Reservierungen # new' bedeuten Sie bringt Sie zu' reservations_path'? Willst du sagen, dass form helper bei der Verwendung von controller und action als 'reservation' und' new' den Pfad zu 'reservations_path' verwendet? – aBadAssCowboy

Antwort

1

Sie scheinen auf der nature of routes unklar zu sein. Die Aktion reservations#new existiert unabhängig von einer Route. Eine Route ist nur eine Möglichkeit, einen URL-Pfad einem Controller und einer Aktion zuzuordnen. Wenn Sie versuchen, etwas wie zu tun:

Sie werden Schwierigkeiten haben, da alle Ihre Routen einige Kontext erfordern. Stattdessen müssen Sie liefern, was die URL Helfer Sie mit einem Kontext verwenden:

redirect_to listing_reservations_path(@listing) 

link_to "New Reservation", new_listing_reservation_path(@listing)  

link_to "Reservation", [@listing, @reservation]