Je 3 modèles Rails comme:joindre seul enregistrement entre les tables dans Rails 4
class User < ActiveRecord::Base
has_and_belongs_to_many :char_factors
end
class CharFactor < ActiveRecord::Base
has_and_belongs_to_many :users
end
class UserCharFact < ActiveRecord::Base
belongs_to :user
belongs_to :char_factor
end
Dans les modèles User
et CharFactor
ci-dessus sont reliés par le modèle UserCharFact
.
Je crée de nouvelles relations que:
def create
@user_character = UserCharFact.create({:user_id => @user.id, :char_factor_id => factor_id.id})
end
Et ci-dessus semble fonctionner correctement. Mais je ne peux pas trouver un moyen de supprimer un join relation
entre 2 tables. J'ai essayé les éléments suivants:
def destroy
@user_character = CharFactor.find(params[:id])
@user.char_factors.delete(@user_character)
end
Mais il supprime en fait la valeur de CharFactor
table plutôt que de simplement supprimer l'association