问题标签 [has-and-belongs-to-many]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
486 浏览

ruby-on-rails - Rails:HABTM 记录未正确删除

我正在对现有的 Rails 站点进行维护工作,但遇到了一个奇怪的错误。这里涉及几个不同的模型:RegistrationsBusiness CategoriesServicesRegistrationsHABTMBusiness CategoriesServices,其中每个 HABTM Registrations。每个 HABTM 关系都存在适当的非主键连接表。

有一个包含两个部分(一个用于业务类别,一个用于服务)的表单,用户填写这些部分以更新他们的注册。这两个部分中的每一个都包含许多复选框,一个用于每个潜在的业务类别,一个用于每个服务。例如,生成业务类别复选框的 HAML 如下:

Registrations控制器的更新功能中:

一般来说,一切正常。用户可以在注册时选中任意数量的复选框,并且他们的注册业务类别和服务会反映选中的复选框。在大多数情况下,后续修改也有效。但是,如果用户在任何时候取消选择表单的给定部分(商务类别或服务)中的所有框,则不会保存对表单该部分的任何更改。没有任何错误消息,并且仍然出现“公司已成功更新”的闪存,但即使在提交表单之前未选中这些框,它们仍然处于选中状态。

如果我重建/重构网站,我更有可能使用has_many :through而不是 HABTM,但我们的预算并没有给我足够的时间。有没有人知道为什么 HABTM 似乎很难放手?

感谢您的考虑!

贾斯汀

0 投票
1 回答
542 浏览

ruby-on-rails - rails HABTM 与视图 (formtastic)

我有两个模型:

模型 NetworkObject 尝试描述“主机”。我想要一个包含源和目标的规则,所以我尝试使用同一个类中的两个对象,因为创建两个不同的类没有意义。

为了构建 HABTM,我确实选择了 Model JOIN。所以在这种情况下,我创建了一个名为 Statement 的模型:

问题是:使用不同的foreign_keys将两个belongs_to添加到同一个类是否正确?我尝试了所有组合,例如:

但没有成功..我做错了什么?

0 投票
1 回答
1397 浏览

cakephp - 从 HABTM 连接表中删除单行

我有使用的模型ExtendAssociations,但由于某种原因 deleteHABTM 似乎不适用于某些模型(不知道:/)。有没有一种简单的方法可以从连接表中删除一行?

0 投票
1 回答
352 浏览

ruby-on-rails - Rails + 通过关联表的简单角色系统

所以我有 Ninja 模型,它通过 ninja_hovercrafts(存储 ninja_id 和 hovercraft_id)有许多 Hovercrafts。

据我了解,这种排列方式应该设置为关联表只存储足够的信息来绑定两个不同的类。

但我想在我的应用程序中使用关联表作为一个非常简化的授权中心。因此,如果此绑定使忍者成为给定气垫船的飞行员或副驾驶,我还希望此表通过表中的“角色”字段通知我的系统。

我的问题是:

  1. 这丑吗?

  2. 这是正常的吗?

  3. Rails 中是否有内置方法可以帮助我自动创建 Ninjas 和 Hovercrafts 与角色的关联?例如,我是否可以有一个嵌套表单来创建 ninjas 和 hcs 以同时填充 ninjas_hovercrafts 中的角色字段?

  4. 如果以这种方式管理我的应用程序角色不是一个好主意,那么非资源密集型替代方案是什么(我的应用程序旨在避免可伸缩性问题,例如过度连接、包含等)

谢谢你

0 投票
1 回答
384 浏览

ruby-on-rails - Rails HABTM 作用域到当前子域

我有以下关联:

在编辑用户时,我正在使用品牌复选框列表。这样我就可以为用户分配品牌的“访问权限”,显示的品牌只是属于当前公司的品牌(由子域 [使用 subdomain_fu] 定义)。

我遇到的问题是,当使用默认的 HABTM 功能和复选框列表时,在保存时,Rails 会删除所有用户->品牌关联,然后只为我刚刚提交的表单重新添加这些关联。

如何将其范围限定为仅删除属于当前公司的品牌关联,在子域中定义?

0 投票
1 回答
2215 浏览

ruby-on-rails - Ruby on Rails:如何使用包含特定值的哈希查找所有项目

假设我有三个模型:StudentSchoolClassDayOfWeek。和 之间存在 HABTM 关系,Student以及和SchoolClass之间。我想做的是找到周一开会的属于某个学生的所有学校班级。SchoolClassDayOfWeek

现在我想我可以做类似的事情:

有没有办法在一个 find 方法中完成第 2-8 行?

0 投票
4 回答
21573 浏览

ruby-on-rails - 将记录添加到 has_and_belongs_to_many 关系

我有两个模型,用户和促销。这个想法是一个促销可以有很多用户,一个用户可以有很多促销。

我还有一个promotions_users 表/模型,没有自己的ID。它引用 user_id 和 Promotions_id

那么,如何将用户添加到促销活动中?我试过这样的事情:

这会导致以下错误:

如果我改用这条线: promo= user.promotions.new(promo.id)

我收到此错误:

我确信我的问题有一个非常简单的解决方案,我只是没有以正确的方式寻找解决方案。

0 投票
1 回答
111 浏览

ruby-on-rails - HABTM 检查最近 3 次的匹配

这里有一个对你们来说很有趣的...

我在“狗”和“旅行”之间有 HABTM(has_and_belongs_to_many)关系。我的目标是找到两个结果集:1)最近 3 次旅行中至少有 1 次的狗并称其为 @dogs_current 2)最近 3 次旅行中没有任何一次的狗并称其为 @dogs_old

我发现我可以通过在 Trip 模型中执行此操作找到最后 3 次行程:

但不确定如何使用该列表获取 1 和 2。这个 hack 有效,但看起来很难看。一定会有更好的办法!:)

有任何想法吗?谢谢!-凸轮

0 投票
1 回答
672 浏览

ruby-on-rails - 在rails中模拟belongs_to_many

我有一种情况,理论上我需要使用belongs_to_many 关系。我有一个示例模型和一个句子模型。每个示例对象都有一个句子,但这些句子不一定是唯一的。因此,例如,我可以有两个示例模型,每个模型都有一个句子是同一个句子。我不确定如何在 Rails 中执行此操作。我尝试使用 has_and_belongs_to_many,但遇到了问题。看来我只需要 belongs_to :many 关系的一部分。理想情况下它看起来像这样,但我知道没有 belongs_to :many。

示例 has_one :sentence end

句子belongs_to_many :examples end

0 投票
3 回答
18137 浏览

ruby-on-rails - habtm 关系不支持 :dependent 选项

HABTM 关系确实不支持该:dependent选项吗?

我正在尝试rails edge。