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

ruby-on-rails - 如何在 Rails 中为 belongs_to 关联指定连接条件?

我正在尝试使用连接条件而不是外键在两个模型之间创建关联。有谁知道这是否可能?

例如,我想将产品加入定价点。产品具有价格,定价点具有最小和最大数量以及名称。例如。最小值 = 0,最大值 = 20,名称 = 不到 20 美元。产品之间的关联在于价格以及最小值和最大值。

这有意义吗?所以我想要在我的模型中这样的东西:

在此先感谢您的帮助,

帽子

0 投票
7 回答
1360 浏览

open-source - 开源数据挖掘软件

我在想; 什么是我可以用于非二进制关联规则生成的最佳开源软件。我需要一个非二进制实现,因为将我当前的非二进制数据转换为二进制数据不会产生预期的结果。

谢谢,迫不及待地想在这里发表您的评论!

0 投票
1 回答
1523 浏览

ruby-on-rails - 如何最好地“合并”两个对象及其在 Rails 中的关联?

这是我的情况:我有 2 个人员对象,person1 和 person2,它们是从两个不同的外部数据源创建的。我有一个手动过程,我使用该过程确定 person1 和 person2 实际上指的是同一个人,所以我想要做的是将它们“合并”为一个人,并删除重复项。

我对对象本身逐个字段地执行此操作没有问题,但是如果我做得不好,会变得棘手并且难以维护的是这些人有关联(不是我们所有人)。我想要做的是在将适当的字段复制到 person1(我将继续使用)之后,我也想将关联从 person2 移动到 person1。

我认为我的问题归结为:有没有办法 1)迭代对象的每个关联,以及 2)确定该关联的 foreign_key 字段。我很确定,如果我能够做这些事情,我可以编写一个自动将每个关联记录从 person2 移动到 person1 的方法,并且在我添加或删除关联时不会更改该代码。

关于如何做到这一点的任何想法?

谢谢。

编辑:我已经根据邓肯的回答中给出的指针实现了(尽可能快速和肮脏地)代码。以防万一这对任何人都有帮助,这是您如何将所有关联对象从一个对象(在本例中为@p2)移动到另一个对象(@p1)的粗略概述。

0 投票
2 回答
1829 浏览

ruby-on-rails - 在 ActiveRecord 中与 habtm 双重加入

我有一个奇怪的情况,需要双重内连接。我已经尝试了我需要的查询,我只是不知道如何让 rails 做到这一点。

数据

  • 帐户(has_many :sites)
  • 站点(habtm :users,belongs_to :account)
  • 用户(habtm :sites)

忽略它们是 habtm 或其他什么,我可以使它们 habtm 或 has_many :through。

我希望能够做到

或者

那我当然应该可以

然后让@user.sites 包含来自@some_other_account 的所有站点。

我已经摆弄了 habtm 和 has_many :through 但无法让它做我想做的事。

基本上我需要以这样的查询结束(从 phpmyadmin 复制。经过测试并且有效):

我可以这样做吗?进行这种双重连接是个好主意吗?我假设如果用户一开始就与帐户建立关联,然后担心得到@user.sites,它会更好地工作,但如果保持原样(用户<->网站)。

0 投票
3 回答
69 浏览

database - 如何规范每周参与和每周问题之间的关联?

我正在实施一个竞赛系统,用户必须在其中选择多个问题的正确答案。每周都有一组新问题。我正在尝试找到将用户参与存储在数据库中的正确方法。现在我有以下数据模型:

我想出的唯一解决方案是添加一个将参与与问题相关联的答案表,如下图所示:

我不链接这个解决方案非常好,因为它允许参与者回答来自不同周的问题。将 WeekId 添加到答案中没有帮助。

表示此信息的正确方法是什么?

0 投票
3 回答
2798 浏览

ruby-on-rails - rails中的has_one关系验证

由于has_one不提供before_add允许验证的回调,即使新关联未通过验证,如何防止 Rails 破坏旧关联?

苏珊:has_one:衬衫衬衫:belongs_to:苏珊

susan.shirt = a_nice_shirt

这会破坏之前存在的任何关联,即使新衬衫从未真正关联,因为它没有通过验证,留下一个赤膊的苏珊(好吧,实际上留下了一件不属于任何人的衬衫......)。

做同样的事情

before_add我忽略了丢失的回调是否有充分的理由?

0 投票
4 回答
4298 浏览

model - 如何在 RSpec 测试中设置模型关联?

我已经将我为 posts/ show.html.erb视图编写的规范粘贴到我正在编写的应用程序中,作为学习 RSpec 的一种方式。我仍在学习模拟和存根。这个问题特定于“应该列出所有相关评论”规范。

我想要的是测试显示视图是否显示帖子的评论。但我不确定如何设置这个测试,然后让测试通过 should contain('xyz') 语句进行迭代。有什么提示吗?其他建议也很感激!谢谢。

- -编辑

更多信息。我有一个 named_scope 应用于我的视图中的评论(我知道,在这种情况下我做了一点倒退),所以@post.comments.approved_is(true)。粘贴的代码以错误“undefined method `approved_is' for #”响应,这是有道理的,因为我告诉它存根注释并返回注释。但是,我仍然不确定如何链接存根,以便 @post.comments.approved_is(true) 将返回一组评论。

0 投票
1 回答
136 浏览

ruby-on-rails - 如何延迟关联的创建,直到在活动记录中创建子类?

我有四个表:jp_properties、cn_properties、jp_dictionaries 和 cn_dictioanries。

并且每个 jp_property 都属于表中具有外键“dictionary_id”的 jp_dictionary。

同样,每个 cn_property 也属于表中具有外键“dictionary_id”的 cn_dictionary。

由于属性模型和字典模型中都有很多相同的函数,我想将所有这些函数分组到 abstract_class 中。

模型是这样的:

从上面的代码可以看出,---ModelDomainName--- 部分是“Jp”或“Cn”。我想从 JpProperty、JpDictionary、CnProperty 或 CnDictionary 的实例中动态获取这些字符串。

例如:

所以问题是我不知道如何指定 ---ModelDomainName--- 部分。

更具体地说,我不知道如何在父类的主体中获取子类的实例对象的类名。

你能帮我解决这个问题吗?

编辑:

有人有什么想法吗?

基本上,我想问的是如何“延迟创建关联,直到创建子类。”?

0 投票
1 回答
471 浏览

ruby-on-rails - 如何以最小的数据库开销在 Rails 中测试关联扩展逻辑

我喜欢在任何地方使用模拟和存根来保持我的规范快速运行。我对如何在下面测试 find_special 方法感到困惑:

我不介意为此使用 :extend => 模块语法,但我认为这没有什么不同。

0 投票
2 回答
417 浏览

ruby-on-rails - 从多个关系中检索,ruby on rails

用户 ( has_many :user, has_many :comments) 发表 ( belongs_to :user, has_many :comments) 评论 ( belongs_to :user, belongs_to :post)

现在我正在尝试检索所有帖子(至少有一个用户的评论)更新了该帖子中用户最后评论的评论(我将为此使用用户的 updated_at 属性)

示例:帖子 A

用户 X,Y

X 在 A 中发表评论

然后 Y 在 A 中发表评论

现在我想检索帖子 A,因为在用户 X 的最后一条评论之后,在 A 中发布了一条新评论。

同样,我想检索在用户发表评论后发表评论的所有帖子。(updated_at每次他在任何帖子中发表评论时,我都会更新用户的价值)(我也更新updated_at了帖子的价值,每次 some1 在该帖子中发表评论)

我已经绞尽脑汁想如何在 RoR 中实现这一点,但没有得到任何线索,所以最后我求助于 StackOverflow :)

在此先感谢各位