Ruby on rails Rails拥有并且属于许多不使用include的用户?

Ruby on rails Rails拥有并且属于许多不使用include的用户?,ruby-on-rails,activerecord,include,Ruby On Rails,Activerecord,Include,我正在尝试从用户删除相同的语言 class User < ActiveRecord::Base has_and_belongs_to_many :languages end class Language < ActiveRecord::Base has_and_belongs_to_many :users, uniq: true end 但是当我试着去做的时候 lang = Language.where(id: params[:user][:lang_1])

我正在尝试从用户删除相同的语言

class User < ActiveRecord::Base
   has_and_belongs_to_many :languages
end

class Language < ActiveRecord::Base
  has_and_belongs_to_many :users, uniq: true
end
但是当我试着去做的时候

    lang = Language.where(id: params[:user][:lang_1])
    @user.languages << lang

    logger.debug(@user.languages.include? Language.where(id: params[:user][:lang_1]))
包括?始终返回false,即使@user.languages确实包含Language.whereid:params[:user][:lang_1]。如何修复包括?方法?

您需要保存@user以获取为用户存储的新语言

    lang = Language.where(id: params[:user][:lang_1])
    @user.languages << lang
    @user.save!

    logger.debug(@user.languages.include?(lang))

我没想到答案会这么快谢谢你的帮助。