Salut,
Je souhaiterai migrer une appli ayant un model contenant has_many en lui
ajoutant acts_as_list
exemple sur une nouvelle appli avec la base suivante:
http://pastie.caboo.se/12734
une fois quelques listes créé contenant chaqu’une quelques items je
souhaite ajouter la possibiliter de repositioner mes items.
Pour ce faire, je pense à acts_as_list hors il me reste un soucis lors
de la migration.
voici mon code actuel:
http://pastie.caboo.se/12735
Actuellemnt le problème ce situe au niveau de l’ajout de la colonne
position de la table item. Il faudrai qu’elle soit automatiquement
initialisé en fonction de la liste parente et de la date de creation
(l’id faisant reference).
Merci d’avance pour cette réponse, il me semble d’ailleur que cela
pourrai faire une bonne recette
Sébastien Grosjean - ZenCocoon
Actuellemnt le problème ce situe au niveau de l’ajout de la colonne
position de la table item. Il faudrai qu’elle soit automatiquement
initialisé en fonction de la liste parente et de la date de creation
(l’id faisant reference).
je te propose ça (non testé)
List.find(:all) do |list|
list.items.find(:all, :order => ‘id asc’).each_with_index |item,index|
item.position = index+1
item.save!
end
end
a+
Thibaut
Nicolas P. wrote:
List.find (:all) do |list|
list.items.find(:all, :order => ‘id asc’).each_with_index |item,index|
item.position = index+1
item.save!
end
end
sweet
Très sympa, d’un simpliciter qui fait plaisir !
Après les tests, voici donc la version final:
http://pastie.caboo.se/12745
Merci pour votre soutiens
Sébastien Grosjean - ZenCocoon
Thibaut Barrère wrote:
et ça marche tout aussi bien.
Merci pour le detail.
Sébastien Grosjean - ZenCocoon
Petit détail: acts_as_list sait ajouter “_id” au scope tout seul, par
conséquent tu peux écrire:
acts_as_list :scope => :list
au lieu de
acts_as_list :scope => :list_id
et ça marche tout aussi bien.
a+
Thibaut