gpt4 book ai didi

mysql - 仅删除 Rails 4 中表之间的连接记录

转载 作者:行者123 更新时间:2023-11-29 06:00:01 25 4
gpt4 key购买 nike

我有 3 个 Rails 模型:

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

在上面的 UserCharFactor 模型中,通过 UserCharFact 模型连接。

我正在创建新的关系:

def create
@user_character = UserCharFact.create({:user_id => @user.id, :char_factor_id => factor_id.id})
end

上面的似乎工作正常。但是我找不到删除 2 个表之间的特定 join 关系 的方法。我尝试了以下方法:

def destroy
@user_character = CharFactor.find(params[:id])
@user.char_factors.delete(@user_character)
end

但它实际上是从 CharFactor 表中删除值,而不仅仅是删除关联

最佳答案

UserCharFact.where(char_factor_id: params[:id], user_id: @user.id).destroy_all

关于mysql - 仅删除 Rails 4 中表之间的连接记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45785937/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com