J'utilise site prism pour créer un objet page qui a une possibilité de 2 urls. Site_prism utilise Addressable::Template, et celui-ci utilise le modèle d'URI RFC 6570.
La page requise contient une liste d'éléments, mais peut aussi n'en avoir aucun, et à partir de cette logique, 2 URLs possibles sont définies.
Si la page n'a pas d'éléments, l'URL est example.com/foo
Si la page comporte des éléments, elle redirige la sélection du premier vers example.com/foo/1/bar
J'essaie de créer un modèle d'url pour la page afin d'obtenir l'une des deux sorties possibles.
cas 1 : Page.new.load
=> example.com/foo
cas 2 : Page.new.load(id: 1)
=> example.com/foo/1/bar
Les solutions que j'ai obtenues jusqu'à présent sont les suivantes :set_url '/foo{/id,path}'
Page.new.load(id: 1, path: 'bar')
Cela fonctionne pour le cas 1 mais pas pour le cas 2 car il nécessite 2 variables.
set_url '/foo{/path*}'
Page.new.load(path: [1, 'path'])
Là encore, cela fonctionne pour le cas 1 mais pas pour le cas 2.
Ce dont j'ai besoin, c'est d'un modèle d'uri auquel est ajouté un chemin, mais uniquement si la variable est présente. quelque chose comme : /foo{/id,path("bar")}
Une variable avec une valeur par défaut, ou un chemin qui n'est présent qu'avec une variable définie.
Merci d'avance.