0

J'ai besoin d'afficher la Spécialisation qui n'est pas sélectionnée. L'utilisateur a has_and_belongs_to_many spécialisations et Specialization has_and_belongs_to_many user. Est-il possible d'afficher les spécialisations qui ne sont pas sélectionnés par l'utilisateur actuel.Besoin d'afficher la spécialisation qui n'est pas sélectionnée par l'utilisateur actuel, pour accéder à HABTM join_table

class User < ApplicationRecord 
    devise :database_authenticatable, :registerable, 
     :recoverable, :rememberable, :trackable, :validatable, :doorkeeper 

    belongs_to :user_type, optional: true 

    has_many :comments, dependent: :destroy 
    has_many :lessons, foreign_key: :created_by 
    has_many :qualifications, dependent: :destroy 
    has_many :videos, dependent: :destroy 

    has_and_belongs_to_many :specializations 

    validates_uniqueness_of :email 

Et le modèle de spécialisation est

class Specialization < ApplicationRecord 
    has_and_belongs_to_many :users 

end 

et rejoindre la table est

class JoinTableUserSpecialization < ActiveRecord::Migration[5.0] 


def change 
    create_join_table :users, :specializations do |t| 
     t.index [:user_id, :specialization_id], name: "index_users_on_specialization_id" 
     t.index [:specialization_id, :user_id], name: "index_specializations_on_user_id" 
    end 
    end 
end 

contrôleur de spécialisation est

def suggest 
    @specializations = Specialization.all 
    end 
+0

Accepter et répondre upvote si ma solution a fonctionné pour vous – krishnar

Répondre

0
def suggest 
@specializations = Specialization.where.not(id: current_user.specializations) 
end 
+0

Merci Monsieur. Ça marche. Merci beaucoup!! –

+0

Bonjour krishnar. Souhaitez-vous ajouter une phrase ou deux avant cet exemple de code pour expliquer pourquoi c'est la solution? Nous avons tendance à décourager les réponses au code seulement, car nous pensons que la présentation de certains raisonnements peut être utile pour les futurs lecteurs. Merci! – halfer