Rails Friendly URL
-
20-09-2019 - |
Domanda
Ho un modello chiamato Project e ho definito il metodo "to_param" come questo:
def to_param
permalink
end
Sto usando questo permalink plug github.com/febuiles/make_permalink così quando chiamo p.permalink genererà id-nome.
Il problema è che quando si digita / progetti / 1 nel mio browser web l'URL non cambia a / progetti / 1-nome. Come posso ottenere questo?
Guarda che quando vado a http://railscasts.com/episodes/63 l'URL modifiche / 63-nome
Qualche suggerimento?
Grazie in anticipo
Soluzione
Sembra che Ryan sta usando un redirect condizionale per il corretto episode_url. Il codice sorgente dell'applicazione Railscasts è su GitHub, in modo da poter vedere come lo fa .
Allo stesso modo come suggerisce Drew, questo dovrebbe funzionare bene nel vostro caso.
redirect_to @project, :status => 301 if params[:id] != @project.to_param?
Altri suggerimenti
Sono molto probabilmente utilizzando la gemma friendly_id o qualcosa di simile:
http://github.com/norman/friendly_id/
La parte importante è:
@post = Post.find(params[:id])
redirect_to @post, :status => 301 if @post.has_better_id?