问题标签 [model-associations]

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 投票
4 回答
16143 浏览

ruby-on-rails - Rails 关联方法如何工作?

Rails 关联方法如何工作?让我们考虑这个例子

现在我可以做类似的事情

这会为我获取属于该用户的文章。到现在为止还挺好。

现在,我可以继续在某些条件下对这些文章进行查找。

或者简单地声明和关联方法,如

现在我的问题是,这对使用关联方法获取find的对象数组有何作用?ActiveRecord因为如果我们实现我们自己的User实例方法调用articles并编写我们自己的实现,它给我们的结果与关联方法完全相同,那么在ActiveRecord对象的 fetch 数组上的查找将不起作用。

我的猜测是关联方法将某些属性附加到获取的对象数组中,从而可以使用find和其他ActiveRecord方法进行进一步查询。在这种情况下,代码执行的顺序是什么?我该如何验证这一点?

0 投票
1 回答
323 浏览

ruby-on-rails - Rails 多态关联,一类中有两种关联类型

考虑一个类:

问题是,当我使用 is 添加新投票时@link.link_votes << Vote.newvote_subject_type'Link'希望它可以是'link_votes'或类似的东西。这是 AR 限制还是有办法解决这个问题?

我实际上找到了一个相关的答案,但我不太确定它说的是什么:多态关联与同一模型上的多个关联

0 投票
2 回答
442 浏览

cakephp - CakePHP:间接关联模型的缺点

我在处理 cakephp 中的间接关联模型时遇到了一些问题。我目前的模型设置如下:

我正在尝试将有关所有这些模型的信息保存在一个表单中。我遇到的缺点如下:

  1. 表单助手似乎只能看到一层深的字段类型。

  2. saveAll() 似乎只能将记录保存一层(对于多个模型表单)。

我到处寻找这些问题的解决方案,但由于我是 CakePHP 新手,我不确定处理这些问题的最新方法或“正确”方法是什么。

非常感谢任何建议。谢谢你们!

编辑:我在这里发布了我失败的尝试的代码:http: //bin.cakephp.org/saved/58501

0 投票
2 回答
1550 浏览

ruby-on-rails - 使用 to_json 时如何访问 ':has_many :though' 连接表数据?

我有三个模型(在这里简化):

我正在使用 Rails 的 to_json 方法将其发送到一些 JavaScript,如下所示:

这完美地工作。通过连接表(子视图)可以很好地检索观察结果。

但是,我还想获取位于 childviews 连接表中的数据;特别是“needs_edit”的值。

我不知道如何在 to_json 调用中获取这些数据。

谁能帮我?提前谢谢了。

qryss

0 投票
1 回答
131 浏览

sql-server-2005 - 使用 AND 链接从中间表中过滤数据

我有以下情况:

表和列(数据库类型:Microsoft Sql Server 2005):

表:条目

  • 条目ID
  • ...其他不重要的列

表:属性

  • 属性ID

表:EntryAttributes

  • EntryID [关系到:Entries->EntryID]
  • AttributeID [关系到:Attributes->AttributeID]

那么,如何仅选择包含多个属性的条目,如以下 SQL 语句(该语句不适用于AND链接):

如何构建正确的 SQL 语句?我敢肯定,某处已经有解决方案,但我不知道应该使用哪些关键字来搜索该问题。

我使用“Linq to Entites”,所以也许有一个简单的 Linq 表达式。

感谢您阅读我的帖子!

此致!

0 投票
1 回答
987 浏览

ruby-on-rails - Rails:在来自不同数据库的表之间设置 has_many_through 关联

我正在尝试通过另一个连接模型 AccountOwnership 设置一个 has_many :through 两个模型 User 和 CustomerAccount 之间的关系(用户和 account_ownerships 表在一个数据库中,比如 db1,而 customer_accounts 表在远程数据库中,比如 db2)。

这是设置关联的相关代码

config/database.yml(配置正确,虽然这里没有显示)

在脚本/控制台中

这里的问题是“account_ownerships”和“users”表包含在一个默认数据库中(例如 db1),而“customers”表包含在另一个数据库中(例如 db2)。与数据库的连接配置正确,但在查找过程中,由于只有一个数据库连接对象可用,Rails 尝试在 db2 中查找 account_ownerships 数据库,因此失败。

看起来我的设计/逻辑可能有缺陷,因为我看不到使用相同的数据库连接连接到两个不同数据库的方法,但我很高兴看到是否有解决方法,而无需更改设计。(我不愿意改变设计,因为 db2 不在我的控制之下)

看起来我可以通过将 account_ownerships 表移动到 db2 来解决这个问题,但这至少对我来说不太理想。

是否有任何替代机制/模式可以在 Rails 中设置此关联。

提前致谢。米

0 投票
2 回答
31816 浏览

ruby-on-rails - Rails 模型,属于很多

我很难弄清楚如何将我的一个模型与另一个模型关联起来。

就像现在一样,我有:

但是... ModelB 不仅需要属于 ModelA 的一个实例,还可能属于三个。我知道有一个 has_many :through,但我不确定在这种情况下它会如何工作。ModelA 的每个实例将始终恰好有三个 ModelB 实例。但如前所述,ModelB 可以不只属于 ModelA 的一个实例。

0 投票
1 回答
652 浏览

ruby-on-rails - Rails:子记录不跟踪父项的更改

我确定这是普通的 Rails 行为,我缺少一些基本的东西,但它是什么?

一个孩子属于一个父母,一个父母有很多成员。

虽然nameof 的属性parent已经改变,并且虽然child继续引用同一个父级,但它并不反映父级更新后的属性。这也不是update_attributes失败的问题。child如果再次从数据库中检索到Sally 的记录 ( ),则该name属性会反映parent的新值。

这里发生了什么?

感谢您的洞察力!

0 投票
2 回答
3761 浏览

cakephp - CakePHP saveAll() 不会删除或更新连接表

我希望自动更新/删除连接表。我在 saveAll() 之前执行 deleteAll() 作为解决方法。

当我提交表单时,布局和组件模型会正确更新,但布局组件模型(即连接表)会插入新数据(这是我想要的),但不会删除引用的数据。

布局模型:

组件型号:

布局组件模型(连接表):

布局控制器:

如何自动删除加入?CakePHP 可以做到这一点吗?

0 投票
1 回答
141 浏览

ruby-on-rails - rails 3,新模型 B 与旧模型 A 1:1,如何为每个已经存在的 A 记录自动创建新的 B 记录

Rails v3.0.3 原始模式有客户表,应用程序有 100 个客户的数据。

通过迁移,我们以 1:1添加cust_info表,例如:

所以现在(在运行rake db:migrate创建新模型之后)我们有 100 个“旧”客户记录,它们没有 1:1 所需的cust_info记录。

QUES (1a)(遗留数据更新)为我们 100 个现有客户记录中的每一个生成所需(空)cust_info记录的“rails 方式”是什么?

问题(2)(继续)我们如何修改我们的应用程序,以便当我们创建一个新的客户记录时,它会同时自动创建一个关联的cust_info记录?