gpt4 book ai didi

ruby-on-rails - 无法通过 Rails 3.2 中的关联模型添加或删除

转载 作者:太空宇宙 更新时间:2023-11-03 16:44:18 25 4
gpt4 key购买 nike

我有这 3 个模型:

class BikeActionGroup < ActiveRecord::Base
has_many :bike_action_groups_slas
has_many :slas,through: :bike_action_groups_slas
end

class BikeActionGroupsSla < ActiveRecord::Base
belongs_to :bike_action_group
belongs_to :sla
end

class Sla < ActiveRecord::Base
has_many :bike_action_groups_slas
has_many :bike_action_groups, through: :bike_action_groups_slas
end

每当我尝试向 sla.bike_action_groups 添加或删除某些内容时它在删除或追加时给了我一个 NoMethodError。我调试了sla.bike_action_groups查看它的内容,它不返回 bike_action_groups 数组,而是返回这个:

[#<BikeActionGroup id: 2, name: "Wheels">]

我不能调用任何像删除这样的方法,但是如果我用 to_a 将它转换成数组我可以,只是这不会从实际的 sla.bike_action_groups 中删除它但是来自转换后的数组

这是我用来添加或删除的方法:

@sla.bike_action_groups << @bike_action_group    
@sla.bike_action_groups.delete(@bike_action_group)

最佳答案

你需要在你的has_many关联中使用:dependent => :destroy

class BikeActionGroup < ActiveRecord::Base
has_many :bike_action_groups_slas, :dependent => :destroy
has_many :slas,through: :bike_action_groups_slas
end
class BikeActionGroupsSla < ActiveRecord::Base
belongs_to :bike_action_group
belongs_to :sla
end

class Sla < ActiveRecord::Base
has_many :bike_action_groups_slas, :dependent => :destroy
has_many :bike_action_groups, through: :bike_action_groups_slas
end

有关更多信息,请浏览此 Link

关于ruby-on-rails - 无法通过 Rails 3.2 中的关联模型添加或删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37342252/

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