【发布时间】:2023-04-04 15:08:01
【问题描述】:
如何做到这一点:
has_many :space_mappings, -> { where(group_id: group_id) }, through: :category
也就是说 - SpaceMapping 和这个模型都有一个 group_id 并且它们必须匹配。我可以只做一个方法,但我希望这成为可能。
我明白了:
undefined local variable or method `group_id' for #<ActiveRecord::Relation::ActiveRecord_Relation_SpaceMapping:0x007fe5ac118bd8>
我已经这样做了:
def space_mappings
category.space_mappings.where(space_id: Space.where(group_id: group_id))
end
提前致谢。
【问题讨论】:
-
你想在这里完成什么?只是为了有一个名为
space_mappings的关联是类别? -
“这个模型”是否与类别有
belongs_to关系,并且在其表上具有category_id字段? -
我在问这个问题时犯了一个严重的错误。 Category_id 应该是 group_id。很抱歉造成混乱。
-
这比它澄清的更模糊。什么是
group_id?大概是……某事的外键? -
嗯...这个模型通过Category模型有很多SpaceMappings。到现在为止还挺好。问题是,要使该关系有效(在应用程序的上下文中), group_id 也必须相同。这有帮助吗?
标签: ruby-on-rails activerecord model-associations