问题标签 [has-many-through]

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 回答
771 浏览

ruby-on-rails - 将 has_many 和 :belongs_to 转换为 has_many :through

我目前有一个协会,其中:

Group :has_many EmployeesEmployee :belongs_to Group

但现在我希望员工也与许多组相关联。

为此,我正在考虑制作:

groupizations group_id:integer employee_id:integer created_at:datetime

这将改变 Employee 和 Group 模型:

我从多对多的railscasts 插曲中了解了所有这些。我唯一感到困惑的是,现在我使用以下代码创建了一个新员工:

这段代码将如何改变?我现在需要同时添加数据groupizations吗?

0 投票
0 回答
807 浏览

ruby-on-rails - 通过Rails中的同一张表进行多个has_many关联

我有以下数据库架构:

替代文字

我希望能够做这样的事情:

我是 Rails 新手,所以我并不总是 100% 确定我在写什么,但我尝试遵循 Dog 类的声明,但失败了:):

0 投票
2 回答
55 浏览

ruby-on-rails - 如何在 Rails 中使用 ActiveRecord 获取一条记录而不是重复记录?

我有一个模型如下:

与同一家公司有很多联系。我只想要每家公司的一个实例。

我尝试了以下方法:

但这向我展示了我相信的每个联系人的所有公司。至少这是输出的样子。

如何确保只添加一个公司实例?

0 投票
2 回答
746 浏览

ruby-on-rails - 如何使用 :through 选项声明 has_many 关联的特定键?

我有一个联想:
一个作者有很多书;一本书有很多作者;
我需要使用:通过选项(通过一个名为“关系”的表,有两列名为“left_id”(用作author_id)和“right_id”(用于广告book_id);



在控制台中:



那么,我如何将 'book_id' 指定为 'right_id'?(有没有像 'foreign_key' 这样的选项?)

0 投票
2 回答
1354 浏览

ruby-on-rails - has_many 的问题:through、cache、touch 和 counter_cache

我的应用程序中有很多 has_many :through 关系。我正在扩展显示与此相关的信息,例如连接对象的数量。每当用户更新关系时,连接表都会被修改,我可以捕捉到我的 Sweepers。

问题是,连接表条目被删除,而不是被破坏。如果关系消失了,我就没有合理的方法来检测这一点,并且我正在从缓存中显示误导性信息。:touch => true 或 :counter_cache => true 之类的所有内容都可以部分工作。如果更新或创建关系,它会增加。但是,如果用户删除关系,则不会发生任何事情。:counter_cache 坏了, :touch 没有触发。

垃圾解决方案是在保存主模型时在控制器中调用 .touch 。这种作品,但看起来真的很不专业。这应该在模型逻辑中,而不是在控制器中。

我觉得我错过了一些大事,但我无法理解这一点。任何人都可以对这个问题有所了解吗?

0 投票
1 回答
8703 浏览

django - 如何通过模板中的对象访问自定义多对多中的字段

考虑以下模型:

成员资格是具有额外字段的自定义多对可能直通对象。
如果我有一个人实例,我如何访问其所有成员关系的相应 date_joined 字段 - 无论是在常规代码中还是在 django 模板文件中?

0 投票
1 回答
435 浏览

ruby-on-rails - 从 has_many_through 关系中获取连接模型

在我的 Rails 应用程序中,我有一个 has_many_through 关系。我想使用连接模型/表来存储有关关系的一些数据(具体来说,使用该特定关系的次数)。

我正在我的一个类上编写一个 add-method,它应该检查与主题的任何现有关系,如果存在则更新关系上的计数器,如果不存在则创建它。

例子:

CoffeeDrinker 与 Coffee through Cup 有关。每次 CoffeeDrinker 喝一口时,该特定杯子上的计数器都会增加。CoffeeDrinker 第一次喝一口时,应该创建杯子并初始化计数器。

获取关系对象的最简单和/或最正确的方法是什么?

0 投票
3 回答
4564 浏览

ruby-on-rails - 在 Rails 中,如何在不删除真实记录的情况下销毁“连接表项”?

我现在很困惑,我不知道如何删除/销毁连接表中的记录:




如果我只想销毁关系项,我该怎么办?

0 投票
3 回答
4015 浏览

ruby-on-rails-3 - Rails3 嵌套 has_many 通过问题

我们计划将我们的应用程序升级到 Rails3。我们经常使用的一个插件是nested_has_many_through。这个插件似乎已经过时,不再维护,而且似乎根本无法在新的 Rails3 应用程序中工作。

一个简单的例子:

任何人都可以推荐处理这个问题的最佳实践方法,或者一个工作的 Rails3 插件吗?

谢谢!!

0 投票
1 回答
1026 浏览

ruby-on-rails - has_many 的 RESTful 路由:通过关系?

我有 2 个模型 - User 和 Activity - 由 has_many 关联:通过使用 UserActivity 模型。用户可以“想要”或“完成”一个活动,这会创建一个 UserActivity 记录并设置适当的布尔值。

在创建路由和控制器操作时,您会建议如何处理这些操作?像 activity/:id/want 和 activity/:id/done 这样的东西是否最有意义,因此在活动资源下有 2 个成员路由?还是只使用 user_activity 控制器中的更新/创建操作更有意义,发布到 /user_activity 进行创建,然后放入 /user_activity/:id 进行更新?