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 =)
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ì:
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?
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
mi sembra logico, perchè gli viene passato l’ID come parametro, non il
permalink =P
A me non sembra logico se ti dice che non riesce a trovare il tag con
ID “pippo”, vuoi dire che params[:id] == “pippo” …
Luca
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.