gpt4 book ai didi

ruby-on-rails - Has_many 通过 Rails 5 中的参数

转载 作者:行者123 更新时间:2023-12-03 15:28:49 25 4
gpt4 key购买 nike

我正在努力管理一个具有整数的连接表,该整数的目的是用作相关记录的索引或标签。假设连接表是

class Pair < ActiveRecord::Base
belongs_to :owner
belongs_to :element
validates_presence_of :position
end

隐含设置

class Element < ActiveRecord::Base
has_many :pairs
has_many :owners through :pairs
end

class Owner < ...
has_many :pairs
has_many :elements through :pairs
end

position 是对所有者拥有的元素进行排名的权重或索引

现在我要,收藏owner.elements :

  1. 准确选择给定值为 position 的一个元素.
  2. 使用owner.elements<<在已知元素和所有者之间创建新的配对,但同时为链接赋予权重/位置。

唯一认为我能够锻炼的是忽略并直接使用 join_table,重载 []运营商对它的糖。人们可能期望存在一些更简单的解决方案,也许使用带参数的范围,但我不知道如何将位置属性传递给 create<<操作。

鉴于元素由所有者和位置完美识别,has_one through 中具有某种动态参数的解决方案也是有效的。

最佳答案

我认为您应该通过在模型中定义一个范围来尝试一些简洁的方法。

scope :by_position, ->(element) { joins(:pairs).where(pairs: { position: element.position}) }

给你一个想法,而不是你到底想做什么,但我希望这会导致你的要求。

关于ruby-on-rails - Has_many 通过 Rails 5 中的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56194631/

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