0

J'ai cette relation entre le langage et l'utilisateurinclure un attribut de la table de jointure dans une relation plusieurs à plusieurs lors de la récupération de tous les objets associés

class User < ApplicationRecord 
    has_many :languages, through: :language_users 
    has_many :language_users 
end 

class Language < ApplicationRecord 
    has_many :users, through: :language_users 
    has_many :language_users 
end 

class LanguageUser < ApplicationRecord 
    belongs_to :language 
    belongs_to :user 
end 

classe LanguageUser a un attribut niveau. Ce que je veux, c'est obtenir toutes les langues d'un utilisateur qui inclut l'attribut level (de la classe LanguageUser) pour toutes les langues récupérées par example- User.first.languages ​​et il inclut des objets qui ont la langue et le niveau.

Répondre

0

Cette requête fait facile à récupérer

i= User.first.languages.select('languages.*,language_users.level') 

puis juste boucle à travers et le niveau d'accès par variable_name.level.

0

Si vous voulez chercher toutes les langues avec niveau non nul.

User.first.languages.where('language_users.level not NULL').select('languages.*,language_users.level')