2010-10-07 4 views
2

J'ai cette simple association has_and_belongs_to_many entre les utilisateurs, qui fonctionne parfaitement.Ajout d'un objet dans une association has_and_belongs_to_many avec Rails

Cependant, je voudrais ajouter une relation d'amitié entre tous les nouveaux utilisateurs créés et le premier utilisateur (yup, tout comme Tom MySpace), directement dans la méthode Create:

def create 
    @user = User.new(params[:user]) 
    if @user.save 
    @user.friends << User.find(1) 
    redirect_to root_path 
    else 
    render :action => :new 
    end 
end 

Je ne comprends pas pourquoi cela ne fonctionne pas. Pas d'erreur, rien, ça n'ajoute pas le premier utilisateur aux amis du nouvel utilisateur.

(pour information, j'utilise Rails 2.3.4)

Que dois-je faire?

Kevin

+0

Cochez cette case si vous utilisez un champ différent de l'ID de la clé primaire. – Jiemurat

Répondre

2

D'abord, vous pouvez tirer en script/console et vérifiez si vos associations fonctionnent correctement dans la console. Ensuite, vous devez organiser le code de sorte que l'association entre l'utilisateur et les amis soit antérieure à la commande de sauvegarde.

2

Vous devez ajouter l'ami avant d'enregistrer l'utilisateur, ou enregistrer de manière moins efficace l'utilisateur après avoir ajouté l'ami.

Questions connexes