2011-01-26 4 views
1

Je suis nouveau sur ruby ​​on rails et j'ai joué avec du code source libre pour apprendre.Comment fonctionne la méthode model_path()

J'ai quelques problèmes à comprendre ce que retourne la méthode model_path(@model) et comment la changer. Plus précisément, j'ai un modèle avec un id et un slug et pour une raison quelconque model_path(@model) retourne toujours le chemin avec le slug et non le id.

Des idées sur pourquoi cela peut-être et comment je peux changer ce comportement?

Répondre

0
model_path(@model) 

produira cette URL

/model/:id 

il remplacera :id avec tout ce que @model.to_param retours

+0

Merci! Le code a plus de sens maintenant. Y at-il un moyen facile de générer un http://domain.com/:id/:slug – slugger

+0

ajouter un itinéraire personnalisé. match '/: id /: slug',: to => "votre_controller # show",: as =>: custom_model. Vous pouvez ensuite l'utiliser dans vos vues custom_model_path (@ model.id, @ model.slug). Mais je ne trouve pas cela une bonne solution, il vaut mieux que la méthode to_param retourne l'identifiant et un slug pour que l'url soit comme ceci "/ model/12-blabla" – egze

+0

J'aime aussi le 12-blablah, mais ensuite isn ' t-il plus difficile pour le contrôleur d'utiliser params [: id]? Il aurait besoin d'analyser soit le slug ou l'id, afin de trouver l'instance du modèle, non? – slugger

Questions connexes