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

È stato utile?

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?
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top