2009-06-29 5 views
0

Je voudrais ajouter un paramètre au nouveau chemin nommé.Rails, Restfully Parameterize New Action

Ainsi, par exemple, si j'avais une ressource de réservation, je voudrais utiliser l'itinéraire d'aide:

new_reservation_path(date) 

qui créeraient l'url:

/reservations/new/2009-6-10. 

Je puis saisir la date dans mon nouveau contrôleur utilisant

params[:date] 

et par défaut le champ reservation.date à cette date. Est-ce que quelqu'un sait si l'ajout d'un paramètre comme celui-ci peut être fait? Si non, toute idée est d'autres façons de le faire avec élégance?

Merci beaucoup, Charlie

Répondre

2

Probablement.

Route pourrait vouloir ressembler à:

map.new_reservation "/reservations/new/:date", :date => /\d{4}-\d{1,2}-\d{1,2}/ 

EDIT

Vous pouvez ou ne pas avoir à sauter la génération de la route « nouvelle », ne peut pas se rappeler ce que Rails ferait si vous ne l'a pas ignoré:

map.resources :reservations, :except => [:new] 
+0

Vous devriez absolument l'ignorer. Définir les deux m'a donné des maux de tête dans le passé. – molf

+0

J'ai donc simplifié mon exemple car il s'agit d'une route imbriquée. Quelle est la syntaxe pour ignorer la nouvelle action de la route imbriquée. par exemple, j'ai: map.resources: evenements,: has_many =>: reserves: except => [???] –

+0

aussi merci beaucoup pour l'aide rapide, tres apprecie –