问题标签 [has-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 回答
1466 浏览

ruby-on-rails - 如何打印属于该表的所有元素

好的,我不确定我的标题是否足够清楚,但我会尝试解释

我有两个表:具有_many 项目的订单和属于_to 订单的项目。我刚开始学习 RoR 并坚持一个简单的任务。我想要的只是显示订单和相关项目,如下所示:

订单 1:
项目 1
项目 2

订单 2:
项目 1
项目 2
...

我知道如何单独显示订单或商品,我知道如何显示商品的订单(item.order.id),但是如何在上面的表格中显示订单和商品?在我显示订单的模板中,我可以在每次迭代时遍历每个项目并将其外部 order_id 与 order.id 进行比较,但这会很尴尬。我假设我应该将项目放入某种多维散列中,其中键为 order_id,然后我可以通过订单 ID 引用此散列并获取其中的所有项目,但我不确定它是否正确。

我希望我在这里写的内容是可以理解的。

0 投票
2 回答
2017 浏览

ruby-on-rails - 使用预填充的 has_many 关联创建 Rails 模型实例

这最好通过例子来解释。以下操作很简单:

但是,我希望使用 Bar 初始化所有 Foo 对象,而不必显式运行第 2 行:

这可能吗?理想情况下,“默认”对象仍将以与我明确运行第 2a 行相同的方式关联,以便在保存父 Foo 对象时保存它。

0 投票
2 回答
1055 浏览

ruby-on-rails - 使用 has_many 时有没有办法打破 default_scope?

我有一个树状模型,在除一种之外的所有情况下,我都希望将结果范围限定为仅返回根。

使用default_scope似乎是一个很棒的想法,因为与许可证关联的各种模型(大约有 4 个)以及使用 find() 的任何代码都不需要做任何特别的事情。这不是一个好主意的原因是默认范围也适用于has_many,这导致永远找不到孩子。但这has_many唯一需要超出范围的地方,所以就“默认”行为而言,我认为这default_scope是非常合理的。

那么有什么好方法可以解决这个特定问题吗?

这是我不太喜欢的一个,因为它使用 SQL 进行几乎微不足道的查询:

或者,是否有某种方法可以将命名范围应用于模型中的关联?例如,类似于此无意义代码的内容:

我知道我也可以这样做:

但这真的不是很干。Licence.roots.find()老实说,实际上必须通过而不是做每一个查询Licence.find()也不是很干。它只是要求在不使用范围的地方发生错误。

0 投票
4 回答
6385 浏览

ruby-on-rails - Rails3:如何将默认条件设置为 has_many

我有盒子和球。球在盒子里。球可以是红色和绿色。

我只想用绿球设置 has_many 。我知道 finder_sql 方法存在,但我不知道如何通过范围进行设置。

我希望以下示例是等效的:

0 投票
1 回答
93 浏览

ruby-on-rails - 将 has_many 关联与 belongs_to 引用打乱到 has_many

我的数据类似于:

我这样创建团队:

当我列出 @team.persons 时,@team.leader 有第一个 id,我猜是因为 @team.save 将领导者关联保存在人员之前。我需要它们按照提供的顺序排列,其中 :leader belongs_to 引用了我的 has_many :persons 中的 ID 之一

谢谢!

0 投票
3 回答
14552 浏览

ruby-on-rails - Rails:非 id 外键查找 ActiveRecord

我想ActiveRecord通过表中的非 id 列进行查找。希望当我给你我的代码示例时这一点很清楚。

当我做 a coach_obj.coach_classes时,这会正确触发

(2 是那个教练在id这里,这是我的问题。)

我想让它触发

(“大卫”是那个教练的user_name

user_name是独一无二的,并且出现在两个表中。

出于某种原因,我不想coach_id在我的桌子上放一个。coach_classes

0 投票
2 回答
3554 浏览

ruby-on-rails - Ruby on Rails - 有一个和属于多个关系

这个问题与 ruby​​ on rails ActiveRecord 关联以及如何生成这些迁移有关。

我正在尝试为文档/数据管理系统构建一个 Web 应用程序,我有两个模型 - Arg 和 Descriptor。(使描述符成为对象而不是属性的原因是多个 Arg 共享相同的描述)。Args 和 Descriptors 的关系如下:一个 Arg 只有一个描述符。一个描述符有很多参数。

基本上,在代码中,我希望能够执行以下操作:

目前我有这个设置:

我还运行了这些迁移:

当我尝试以上所有方法时,由于某种原因,我无法让两个 Args 共享一个 Descriptor 对象。例如:

为什么第一个 Arg 的描述符现在为零?我在我的数据库中缺少一列吗?我没有正确指定关系吗?

我对 Rails 和迁移/数据库都不是很精通。如果您正在解释一个概念,请尝试提供 ActiveRecord 代码示例以及 Migrations 代码示例。谢谢。

0 投票
1 回答
309 浏览

ruby-on-rails - belongs_to has_one 关联记录保存

如果我有

.

问题: 当我保存 Book 的实例时,它是否也会对其关联的用户调用 save ?

在我的代码库中,我发现当我调用 @somebook.save 时,正在执行“用户的 after_save 回调”。

0 投票
1 回答
223 浏览

ruby-on-rails - Rails 中的多对多关系

我有两个模型我想用 m-to-m 关系连接,但我希望关系有自己的一些数据,例如到期日期或计数或类似的东西......

假设我有用户、组和一些 UsersInGroups 对象,其中用户和组都有has_many X, :through Y关系。UsersInGroupsbelongs_to一个用户和一个组,但也有一个join_date显示用户何时加入组的。

所以我可以用来self.groups.A从用户那里获取组变量,反之亦然,但是我如何获取join_date变量呢?

0 投票
1 回答
446 浏览

ruby-on-rails - has_many :通过关联问题

我对 ruby​​ 有点陌生,我对 has_many :through 关联有很大的问题。我的系统当前设置了 Authlogic 和 Declarative_auth。在我提交用户的那一刻,它会正确创建所有内容,除了它不会在用户表中插入 role_id,即使它显示它在提交时被传递。它也不会将 id 保存在分配表中。首先,我想问题是,在 users 表中甚至需要 role_id 吗?其次,分配表中的 user_id 和 role_id 字段是否需要声明为 foreign_key 或者 rails 会自动处理这个?我很感激这方面的任何帮助。