salve a tutti,
sto cercando di usare i permalinks nelle URL, anzichè gli id, almeno per
quanto riguarda i *tags* =P
ho trovato questo articolo:
http://www.seoonrails.com/even-better-looking-urls-with-permalink_fu
dove invita ad installare un plugin (permalink_fu) per gestirlo in modo
semplice. ho seguito le indicazioni senza grossi problemi, ma alla fine
quando richiedo una url tipo "http://localhost:3001/tags/pippo" ricevo
questo errore:
ActiveRecord::RecordNotFound in TagsController#show
Couldn't find Tag without an ID
Request Parameters:
{"permalink"=>"pippo"}
il methodo del controller, è implementato
così:
def show
@tag = Tag.find_by_permalink(params[:permalink])
respond_to do |format|
format.html # show.html.erb
end
end
nella view, il link alla richiesta è generato
così:<%= link_to 'Show' , :controller => 'tags', :action => 'show',
:permalink => tag.permalink %>
mentre la route delle tags è questa:
map.connect 'tags/:permalink', :controller => 'tags', :action => 'show'
in console funziona senza problemi, non capisco quindi dove potrebbe
essere l'errore... grazie a tutti per l'eventuale aiuto =)
A.
on 2009-05-30 17:01
on 2009-05-30 17:32
permalink_fu è utile soprattutto per ActiveRecord: estrae, a partire da un attributo, una stringa che contenga caratteri validi per costituire una URI. Più o meno, per ottenere quello che vuoi, dovresti fare così: http://bit.ly/2zRPE Luca
on 2009-05-30 17:57
Ciao Luca, grazie per la risposta =) purtroppo, la mia situazione era quasi identica alla pagina che mi hai linkato, ma dopo aver cambiato l'unica riga differente, cambiando il modo di instanziare la variabile @tag: @tag = Tag.find_by_permalink!(params[:id]) l'errore cambia, e diventa: Couldn't find Tag with ID=pippo mi sembra logico, perchè gli viene passato l'ID come parametro, non il permalink =P non è capitato a nessuno di dover risolvere un problema simile? ciao, And Luca Guidi ha scritto:
on 2009-05-30 21:27
Andrea Pavoni wrote: > mi sembra logico, perchè gli viene passato l'ID come parametro, non il > permalink =P A me non sembra logico :P se ti dice che non riesce a trovare il tag con ID "pippo", vuoi dire che params[:id] == "pippo" .. Luca
on 2009-06-02 10:08
Grazie di nuovo Luca =) hai ragione, di logico c'era davvero poco =P mi sono espresso così perchè stavo editando il file sbagliato (admin/tags_controller anzichè tags_controller) e lì, tra le varie prove, avevo specificato il permalink come parametro passato al controller =P tutto risolto, grazie ;) A. Luca Guidi ha scritto:
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.