Forum: Rails France Relation through

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
0aa50f7fd63018e47fbbf87b7be6626f?d=identicon&s=25 Julien Biard (Guest)
on 2007-01-24 10:08
(Received via mailing list)
Bonjour,

J'ai une relation has_many entre deux modèles User et Network via un
modèle intermédiaire (utilisation via :through) UserNetwork.

Lorsque je fais mes tests unitaires, initialement je teste sans aucune
relation entre deux modèles, puis j'en ajoute en créant des instances de
la table intermédiaire (c'est peut-être là le problème). Le problème est
que le cache est effectif et aucune relation n'est chargée, à moins que
je force le rechargement.

L'appel de @user1.user_networks renvoie vide (ok)

un= UserNetwork.new
un.user = @user1
un.network = net1
un.save!

et l'appel de :

@user1.user_networks renvoie [] (KO)
@user1.user_networks(true) [un] (ok)

Dois-je faire cela pour être sûr :

net1.user_networks << un
@user1.user_networks << un


Pouvez-vous me dire comment vous gérer cela ?

Merci,

Julien
0aa50f7fd63018e47fbbf87b7be6626f?d=identicon&s=25 Julien Biard (Guest)
on 2007-01-24 17:17
(Received via mailing list)
Le problème rencontré :

http://blog.hasmanythrough.com/2006/04/17/join-mod...

Une solution élégante :
    http://blog.hasmanythrough.com/2006/8/19/magic-joi...

Du coup je fais :
    @user1.networks.push_with_attributes( net1, :champ => 'valeur' )

Avec :

class User < ActiveRecord::Base
  has_many :user_networks
  has_many :networks, :through => :user_network do
      def push_with_attributes( network, join_attrs = {} )
        UserNetworkPrivacy.with_scope( :create => join_attrs ) { self <<
network }
      end
  end
...

end
This topic is locked and can not be replied to.