Question sur acts_as_taggable

Hello,

Je viens de me mettre à RoR et j’ai un souci avec l’utilisation de
acts_as_taggable (gem).
J’essaye d’avoir un modele item/tag/user. Lorsque j’ajoute un nouveau
tag,
tout se passe bien, ça stocke ma relation {item_id, user_id, tag_id}.
Par contre, lorsqu’un nouvel utilisateur pose ce même tag sur le même
item,
rien n’est enregistré.

J’ai suivi la doc ici
http://dema.ruby.com.br/files/taggable/doc/classes/ActiveRecord/Acts/Taggable/ClassMethods.html
et mes modèles semblent bien définis (les mêmes que dans le doc en
fait),
mes tables aussi.
Bref, je ne vois pas ce qui manque, et je ne connais pas encore assez
bien
ruby/rails pour voir si c’est dans mon code ou celui de acts_as_taggable
que
ça va pas.

Quelqu’un a déjà réussi à faire ce genre de trucs ?

Sinon, est-ce qu’il y a un mode debug pour RoR (voir l’état des
requêtes,
variables …) ?

Merci !

Salut Alexandre,

Je peux me tromper mais je ne pense pas que l’on puisse poser 2x le
même tag sur le même objet avec acts_as_taggable, tout simplement.

Il faudrait que acts_as_taggable ait une option scope (avec en
l’occurrence l’attribut person_id) qu’il n’a pas.

Avant de me faire engueuler, je tiens à dire ne pas être sûr de ce que
je suis en train de dire alors corrigez moi ! D’après ce que j’ai
compris de acts_as_taggable, on a cette limitation. AaT est utile si
l’on a affaire avec des objets uniques. Par exemple les photos de
chaque membre dans son espace privé son taggables. Les photos publiques
sont taggables par tous les membres et les tags pour chaque objet
seront uniques. Mais tu ne peux pas proposer à tes membres un groupe de
10 photos qui n’auraient qu’une entrée dans la bdd et qui seraient
taggables différemment par chaque membre (et on se retrouverais dans
une situation où on pourrais tagger 2 fois le même objet avec le même
tag). Si tu veux vraiment ça, tu fais des objet identiques mais avec
des enregistrements différents dans la bdd pour chaque membre ou tu
fais un petit mix perso de AaT avec un scope thru person_id…

Si tu viens de te mettre à Ror, ça risque d’être un poils pas très
facile mais faisable. Regarde les diapos Keynote sur la page “Get
Exited” de Rubyonrails.org. Je pense qu’il y en a une série où DHH
donne le code derrière AaT. (sinon je dois pouvoir te procurer ces
diapos)

Ai-je été clair ?

à bientôt
NP

Le 6 mai 06, à 14:14, Alexandre Passant a écrit :

Merci pour les infos…
En fait j’ai regardé du coté du plugin (et pas du gem) de AaT et j’ai
trouvé
cette URL qui m’a permis d’arriver au résultat

http://rails.techno-weenie.net/question/2006/3/6/how_to_add_user_to_acts_as_taggable

Par contre j’ai un dernier souci.
J’ajoute bien des Tagging = {item,tag,users} différent mais je ne vois
pas
comment forcer l’unicité de ce triplet (les 3 sont “belongs_to” pour
l’objet
en question). Avec un index unique sur ma base, j’ai une erreur mysql
quand
j’essaye d’enregistrer.
Est-ce qu’il y a une méthode genre has_unique :item, :tag, :user ?

Merci
Alex.

Salut,

Cool que tu aies trouvé, je note la page.

En revanche pour ta dernière question, tu parles chinois pour moi. Et
il n’y a pas, à coup sûr, de méthode has_unique.

Le code parle souvent 10 fois mieux que les explications. Si tu peux
envoyer le code de tes 3 modèles, du contrôleur qui joue avec et ton
fichier db/shema.rb). Ou toute ton appli si ce n’est pas top secret. Au
pire tu me l’envoie en email privé.

à bientôt,
NP

Le 6 mai 06, à 23:03, Alexandre Passant a écrit :