问题标签 [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 投票
2 回答
1022 浏览

ruby-on-rails - 当假定记录可能不存在时,Ruby on Rails 防止出现 nil 错误

我正在构建一个简单的图书签出应用程序。我需要做的一件事是确定一本书是否已签出。我通过 book_check_out 类设置了我的人员和书籍类之间的关联。我的目标是使用 book 的 checked_out 属性来确定当前是否已签出一本书。然而,在我目前的实现中,当一本书没有被签出并且我参考 book.checked_out.XXX 我收到错误“你没想到它有一个 nil 对象! ”我的目标是使用 book.checked_out 两个在某些视图中,目的表明是的,该书已被签出,而在其他视图中,则显示当前已签出给谁。



0 投票
1 回答
7315 浏览

ruby-on-rails - 如何在我的装置中加载带有外键的 HABTM 关系?

我有以下两个模型:School 和 User,以及它们之间的 HABTM 关系,带有一个连接表。

在这个连接表中,引用 User 表的外键没有被调用user_id,但是student_id

我想在我的用户和学校装置中创建一个学校和一个用户,但是在用户中定义的 foreign_key 似乎是一个问题。

fixtures/users.yml

fixtures/schools.yml

加载上面的装置会返回一个 ActiveRecord 异常: ActiveRecord::StatementInvalid: Mysql::Error: Unknown column 'user_id' in 'field list': INSERT INTO schools_students (student_id, user_id) VALUES (6562055, 14302562)

我究竟做错了什么 ?

0 投票
6 回答
19361 浏览

php - Yii框架多对多关系

Yii框架中保存和更新多对多关系的方法是什么?

0 投票
11 回答
46978 浏览

ruby-on-rails - 如何在工厂女孩中创建 has_and_belongs_to_many 关联

鉴于以下

您如何为公司和用户定义工厂,包括双向关联?这是我的尝试

现在我试试

也许不出所料,这会导致无限循环,因为工厂递归地使用彼此来定义自己。

更令人惊讶的是,我在任何地方都没有提到如何做到这一点,是否有定义必要工厂的模式或者我在做一些根本错误的事情?

0 投票
1 回答
862 浏览

ruby-on-rails - 如何管理与 Rails 的 n:n 关系?

假设我有一个Company,有很多Employees,每个都Employee可以有很多Companies

基本上我会有:

但是后来我对如何获得以下内容感到困惑:

  • 名称以“John”开头的公司的所有员工
  • 一家公司的所有员工首先按姓名排序,然后按电子邮件排序。

有什么我不知道的魔法吗?该示例仅用于演示,如果它可以帮助您更好地解释,请随意做出假设或更改它。

0 投票
1 回答
172 浏览

database - HABTM-Relation :为所有其他记录创建关系

如果我想向TABLE A添加一条记录,是否有一种有效的方法可以在JOIN TABLE中为TABLE B中的许多(或所有)记录添加一条记录?

我尝试构建一个简单的任务管理(在 CakePHP 中)。一个用户添加了一个任务,并且将与当前用户在同一组中的每个其他用户添加一个连接。

目前,我使用 find('list') 方法检索 ID 并将它们存储在变量中。但我认为如果组增长,PHP 缓存将无法在单个变量中处理这么多数据。

0 投票
2 回答
5446 浏览

php - cakephp habtm 关系(保存数据)

与 HABTM 相关的问题已在 stackoverflow 上以一些不错的数量发布,但我仍在寻找解决问题的方法。

我正在创建一个允许基于特定子类别创建主题的应用程序。在添加主题时,会要求用户提供标签(在同一表单上)。现在,当用户通过单击添加按钮完成向主题添加标签时,主题已成功添加,但标签未添加。

我已经为主题和标签创建了连接表tbl_tags_topics.(如 cakephp 的约定中所定义),并在主题和标签的模型中正确定义了“hasAndBelongsToMany”数组。

我现在缺少什么步骤。?

我还有一个与此相关的问题,但是当我能够成功地将与主题相关的标签发送到数据库时,我会发布它。(功能类似于stackoverflow的标签添加和附加功能)

非常感谢任何帮助。如果你找到任何关于 HABTM 的好教程,也请告诉我。

谢谢

0 投票
1 回答
3496 浏览

ruby-on-rails - 验证 habtm 关联的长度而不保存

我有一个与组有 HABTM 关系的用户模型。我不希望用户能够超过 5 个组,因此想验证 HABTM 关系的长度。

在编辑用户页面上,我有一个复选框列表,用户可以在其中选择他们想要加入的组(我使用 formtastic 作为表单)。

在我的用户控制器中,我正在调用:

这导致rails自动更新关联。

在我的用户模型中,我有以下内容:

这导致表单验证失败,但 update_attributes 调用已更新数据库以反映对关联组的更改。这样,每次用户单击保存按钮时,他们的组关联都会保存,即使记录无效。

解决这个问题的最佳方法是什么?

我认为也许验证需要在组模型而不是用户模型上,这行得通吗?理想情况下,我想在不保存记录的情况下更新关联的组,进行验证,然后保存记录。

0 投票
2 回答
6044 浏览

ruby-on-rails - has_and_belongs_to_many 关联的排序

在我的 Rails 应用程序中,我有两个与 has_and_belongs_to_many 相关的模型。这意味着有一个连接表。

想象一下我将用户添加到游戏中的场景。如果我想添加一个用户,我会:

假设我想知道添加这些用户的顺序。我可以做这个:

我的问题是:

  1. 如果此列表保证每次都以相同的方式读取,则排序是否?

  2. 如果是这样,在游戏中重新排序用户的干净方法是什么?

0 投票
4 回答
915 浏览

ruby-on-rails - 在保存与 HABTM 一起使用的表单之前做一些事情

我目前有 3 张桌子。

片段标签片段标签

我正在使用HABTM。

所以我做了一个表格来保存带有标签的片段。关键字位于文本字段中,以逗号分隔。

我需要做的是从此文本字段中获取字符串,循环关键字,检查它们是否存在,如果不存在,则创建它们,然后保存片段。

我尝试了 before_save 但它似乎并没有那样做..

所以如果你能帮助我,那就太好了!

非常感谢!