问题标签 [belongs-to]

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

ruby-on-rails - Rails:通过belongs_to保存记录并设置外键

有没有更好的方法来编写这段代码?它只是不适合我,我觉得有一些我应该已经知道的真正“轨道式”的东西:

创建记录后,我将使用选定的父模板并parent_in_use基于它创建记录。这样模板可以更改,in_use 记录将永远与我的对象一起存在。ParentInUse 和 ParentTemplate 类都使用 STI 从 Parent 继承。

我确定这应该足够简单,但我不知道该怎么做,基本上我想在一次操作中创建并分配记录。

0 投票
2 回答
498 浏览

ruby-on-rails - 两个单表继承模型之间的关系

我有以下两种型号

我想要一个联系人,无论是公司还是个人,都有很多联系人字段(地址和电话)......那么我应该把那些有很多并且属于的联系人放在哪里?谢谢

0 投票
2 回答
783 浏览

ruby-on-rails - ActiveRecord has_one 关系在某些情况下不返回

给定三个相互嵌套的模型。如果我创建顶级对象并 build_* 其他子对象,我可以通过原始实例上的 save() 之前和之后的关系检索所有子对象。但是,如果我尝试在 find(:id) 原始父对象之后检索第二级嵌套对象,它将失败。但是,我可以检索第一级嵌套对象。这通常发生在控制器中,但我将在下面的控制台输出中说明它。

我在看什么?

提前致谢!
~jpv

下面的所有样板文件:

适当的外键位于每个“belongs_to”类中。

0 投票
1 回答
1217 浏览

php - cakephp中可选的belongsTo关系

我的 CakePHP 应用程序中有一个简单的类别模型。我想添加子类别,只需添加一个 parent_id 列即可。

parent_id 是一个 belongsTo 关系,它引用回相同的 Category 模型。

当我生成我的管理脚手架时,会出现一个下拉列表(正确!),但我想在这个下拉列表中包含一个 NULL 选项(用于顶级类别)。

这可能吗?如果是这样,如何..

(注意:现在对树的行为不感兴趣)

0 投票
1 回答
2625 浏览

zend-framework - Zend Framework 使用 Element、子表单和 belongsTo 的问题

仍然用 Zend_Form 和任何需要放置在子数组中的元素拉我的头发。form->populate() 在处理子表单中已使用 belongsTo() 设置为父数组的元素时不起作用 - 我认为这实际上是 Zend_Form->setDefaults() 中的一个错误,但只是想看看如果其他人有a)有同样的问题并且b)设法解决它......

0 投票
4 回答
973 浏览

ruby-on-rails - 在 Ruby on Rails 中设置相互的 belongs_to

我正在创建一个维基。每篇文章有_many Revisions,一篇文章属于_单个current_revision。因此,在数据库中,Articles 对 Revision 的 id 有一个引用,并且每个 Revisions 对它们所属的 Article 都有一个引用。在我继续之前,这似乎是一种理智的做事方式吗?我觉得这很不正统,但合乎逻辑,我不确定其他人在类似情况下是如何设置的。

问题是这种相互的belongs_to 关系在创建模型时似乎真的把Rails 扔掉了。当我第一次创建文章时,我还想创建一个初始修订以配合它。

我添加了一个 before_create 方法并做了类似的事情:

但这会导致保存时堆栈溢出,因为 Rails 显然会尝试在循环中首先保存文章,所以它有一个 article_id 来粘贴 Revision,然后首先保存 Revision,所以它有一个 current_revision_id 来粘贴文章。

当我分解事物并且不同时创建它们(但仍在事务中)时,创建的第一个不会获得其参考集。例如:

会留下一个空 article_id 的修订,因为它错过了保存。

我想我也可以通过调用 after_create 方法来解决这个问题,只是用更新和保存来初始化变量,但这变成了一个巨大的混乱,我觉得在 Rails 中这通常意味着我做错了什么——当头一棒。

任何人都可以提供帮助,还是我坚持创建一个保存更改的 after_create 方法?

0 投票
2 回答
2242 浏览

ruby-on-rails - ActiveRecord :包括不适用于带有foreign_key的belongs_to

我有两个这样设置的模型:

然而,每当我这样做

发出的 sql 总是在寻找 ID(并使用零):

我做错了什么,还是foreign_keys在与 的belongs_to关系中使用有问题include

0 投票
1 回答
1186 浏览

ruby-on-rails - Rails:对于模型 A has_many B belongs_to C 返回 A 其中 B 属于 C 并且 B 是最近为给定 A 创建的?

我有三个模型 A、B 和 C,其中A has_many B; B belongs to C, 和B has a created_on timestamp. C has_many A 到 B。

我想返回所有A,其中A有一个属于C的B,而B是该A最近创建的B。

我可以用方法循环来做到这一点。这可以仅使用 named_scopes 完成吗?还是其他一些优雅/有效的方式?

根据对真实世界 (TM) 示例的请求,A、B 和 C 可以想象为例如 Pets (A)、PetsName (B) 和 Names (C)。PetsNames 在特定时间赋予 Pets,任何给定的 Name 都可以赋予多个 Pets。任何宠物都可以有多个名称(一个 :through 关系)。对于给定的名称,我想要该名称是该宠物最近创建的 PetName 的所有宠物电话可能看起来像@name.pets.most_recently_named_as

0 投票
1 回答
518 浏览

ruby-on-rails - Rails ActiveRecord 关联更新不一致

我遇到了一些我不理解的 Rails 2.3.5 ActiveRecord 行为。似乎一个对象可以以不一致的方式更新其关联 ID。

最好用一个例子来解释:

创建一个Post带有字符串属性的模型'title'和一个Comment带有字符串属性的模型'content'

以下是关联:

场景#1:在下面的代码中,我创建Post了一个关联的,通过'ing 第一个Comment创建第二个,将第二个添加到第一个并发现第二个与第二个关联而没有显式分配。PostfindCommentPostPostComment

场景#2:再次运行上面的命令,但是这次插入一个额外的命令,从表面上看,应该不会影响结果。额外的命令post2.comments创建之后comment2和添加到.comment2post1

请注意,在此场景中只有一个与相关联的评论,post2而在场景 1 中则有两个。

大问题:为什么要post2.comments在添加新的之前运行Commentpost1对与评论相关联的评论产生任何影响post2

0 投票
2 回答
560 浏览

ruby-on-rails - 如何在 Rails 中创建“双向”多对多关系?

假设我们有一个摄影网站。任何作者都可以订阅以接收来自任何其他作者的更新。显然,如果作者 A 订阅了作者 B,这并不意味着 B 订阅了 A。所以我们建立模型

这样我们就可以使用

  1. some_author.subscribed_by_author -- some_author 订阅的作者列表。
  2. 对于任何订阅,我们都可以知道两端(谁订阅了谁)

但问题是如何仅使用rails(不使用普通SQL)获取订阅某个作者的人员列表,即得到答案:“谁订阅了some_author?”

问题:Rails 中是否有能力让双方的关系发挥作用,即不仅是写作some_author.subscribed_BY_author,还有拥有some_author_subscribed_TO_author?如果有,那是什么?

PS明显的解决方案是

  1. 更改数据库设计,添加名为“direction”的列
  2. 每次创建订阅时创建 2 条记录
  3. 添加到作者模型

    has_many :subscribed_BY_author, :through => :subscriptions, :source => :subscribed_to, :conditions => "direction = 'by'"

    has_many :subscribed_TO_author, :through => :subscriptions, :source => :subscribed_to, :conditions => "direction = 'to'"

但我想知道是否有不改变数据库设计的解决方案。