【问题标题】:Rails has_and_belongs_to_many doenst work with include?Rails has_and_belongs_to_many 不适用于包含?
【发布时间】:2014-08-08 19:08:52
【问题描述】:

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

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]))

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

【问题讨论】:

    标签: ruby-on-rails activerecord include


    【解决方案1】:

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

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

    【讨论】:

    • 没想到回答这么快。 :) 谢谢,.save 帮助了。
    猜你喜欢
    • 2014-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-21
    相关资源
    最近更新 更多