ho sovrascritti to_param
metodo nel mio modello Category
Routing in Rails. Dots in URL
def to_param
name
end
E routes.rb
get '/:id' => 'categories#show', :as => :category
Quando name
parametro non contiene punti (foobar
), tutto funziona bene, ma quando si fa (f.o.o.b.a.r
) Ottengo un errore No route matches [GET]
. Quindi la mia domanda è: è possibile utilizzare i punti nel routing come una parte del nome del parametro? O cosa posso fare per raggiungere questo scopo, forse alcuni ganci o qualcosa del genere. Qualsiasi aiuto è apprezzato.
Questo regexp corrisponderà solo a una parola con esattamente un punto dopo di esso. Devi usare '/ [\ w \.] + /'. –
Dylan: Grazie, ho aggiornato questo. –
Non vedo come questa sia una soluzione. Si interrompe se nell'URL ci sono caratteri non di parole, che probabilmente hanno almeno un '%' e devi almeno avere 1 punto. È come curare un mal di testa tagliando la testa. Questa è la soluzione giusta: http://stackoverflow.com/questions/5369654/why-do-routes-with-a-dot-in-a-parameter-fail-to-match – believesInSanta