En supposant que j'ai une application agence de Voyage avec cette ressource:itinéraires complexes avec des contraintes
mix phx.gen.html Flights Flight flights departure destination
starts_on ends_on
flight_number price:integer
Je veux afficher tous les vols qui correspondent à une URL demandant dans un modèle d'index. Mais je veux avoir cela disponible avec un itinéraire comme kayak.com: http://localhost:4000/flights/FRA-MIA/2017-12-01/2017-12-08
Dans le document officiel à https://hexdocs.pm/phoenix/routing.html Je ne trouve pas un exemple de quelque chose de similaire à cela. J'ai besoin de FRA
, MIA
, 2017-12-01
et 2017-12-08
comme paramètres.
L'itinéraire généré est la suivante:
resources "/flights", FlightController
Je suppose que je pourrais utiliser la fonction get_flight!/1
pour diviser le id
mais qui se sent sale. Y a-t-il un meilleur moyen?
Dans Ruby on Rails j'utiliser quelque chose comme match "/flights/:from-:destination/:year(/:month(/:day))..." => "flights#index", :constraints => { :year => /\d{4}/, :month => /\d{2}/, :day => /\d{2}/ }
Comment puis-je résoudre ce problème à Phoenix?