codice:
def tagging
@toTagArray = params[:ids].split(",") #array with all the record's id
@tag = params[:tag] #tag name
@photos = Photo.find(:all, :conditions => {:id => @toTagArray })
@photos.each do |p|
p.tag_list = @tag
p.save
end
end
Non usare variabili di istanza quando non servono, all'interno del controller le variabili di istanza servono per passare dati alla view, se un dato non deve finire nella view non deve (dovrebbe?) essere messo in una variabile di istanza.
params[:tag] è una stringa tipo "bim, bum, bam"? Perché leggendo il nome singolare viene in mente di no, ma visto che usi tag_list verrebbe in mente di si. Usa sempre degli identificatori che rendano sempre il più chiaro possibile cosa identificano. Se oggi il dubbio è venuto a me, domani verrà anche a te!
Cos'ha che non va scrivere
codice:
Photo.find(array_di_id)
che usi sempre
codice:
Photo.find(:all, :conditions => { :id => array_di_id })
?
e magari fare una funzione nel modello che fa ciò al quale passare gli id
Io, personalmente, nel modello definirei solo un metodo così
codice:
def find_by_ids(string)
ids = string.split(",")
find(ids)
end
E il resto lo lascierei nel controller.