J'ai trois modèles, User, Type et TypeDescription, et comme vous pouvez le voir ci-dessous, chaque utilisateur peut avoir plusieurs types, mais chaque type n'a qu'une seule description. Donc comme optimisation, J'ai pensé que chaque TypeDescription devrait être jointe au Type via JOIN dans sql, donc j'ai utilisé default_scope et defined join, et cela fonctionne quand j'obtiens le type via Type.find( id ), mais quand j'utilise user = User.find( 1 ), chaque type dans user.types n'a pas de données de TypeDescription, parce que default_scope ajoute juste des options définies aux méthodes comme find, all etc. Donc, ce que je cherche, c'est une solution pour que cela fonctionne dans ma situation. Ce que je veux, c'est que lorsque j'obtiens certains ou tous les utilisateurs, je veux avoir tous les types d'utilisateurs et chaque type devrait avoir des données de TypeDescription.
donc, le code est :
class User
has_many :types
end
class Type
has_one :type_description
default_scope :joins => :type_description
end
class TypeDescription
belongs_to :type
end
Merci !