问题标签 [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.
ruby-on-rails - Rails:通过belongs_to保存记录并设置外键
有没有更好的方法来编写这段代码?它只是不适合我,我觉得有一些我应该已经知道的真正“轨道式”的东西:
创建记录后,我将使用选定的父模板并parent_in_use
基于它创建记录。这样模板可以更改,in_use 记录将永远与我的对象一起存在。ParentInUse 和 ParentTemplate 类都使用 STI 从 Parent 继承。
我确定这应该足够简单,但我不知道该怎么做,基本上我想在一次操作中创建并分配记录。
ruby-on-rails - 两个单表继承模型之间的关系
我有以下两种型号
和
我想要一个联系人,无论是公司还是个人,都有很多联系人字段(地址和电话)......那么我应该把那些有很多并且属于的联系人放在哪里?谢谢
ruby-on-rails - ActiveRecord has_one 关系在某些情况下不返回
给定三个相互嵌套的模型。如果我创建顶级对象并 build_* 其他子对象,我可以通过原始实例上的 save() 之前和之后的关系检索所有子对象。但是,如果我尝试在 find(:id) 原始父对象之后检索第二级嵌套对象,它将失败。但是,我可以检索第一级嵌套对象。这通常发生在控制器中,但我将在下面的控制台输出中说明它。
我在看什么?
提前致谢!
~jpv
下面的所有样板文件:
适当的外键位于每个“belongs_to”类中。
php - cakephp中可选的belongsTo关系
我的 CakePHP 应用程序中有一个简单的类别模型。我想添加子类别,只需添加一个 parent_id 列即可。
parent_id 是一个 belongsTo 关系,它引用回相同的 Category 模型。
当我生成我的管理脚手架时,会出现一个下拉列表(正确!),但我想在这个下拉列表中包含一个 NULL 选项(用于顶级类别)。
这可能吗?如果是这样,如何..
(注意:现在对树的行为不感兴趣)
zend-framework - Zend Framework 使用 Element、子表单和 belongsTo 的问题
仍然用 Zend_Form 和任何需要放置在子数组中的元素拉我的头发。form->populate() 在处理子表单中已使用 belongsTo() 设置为父数组的元素时不起作用 - 我认为这实际上是 Zend_Form->setDefaults() 中的一个错误,但只是想看看如果其他人有a)有同样的问题并且b)设法解决它......
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 方法?
ruby-on-rails - ActiveRecord :包括不适用于带有foreign_key的belongs_to
我有两个这样设置的模型:
然而,每当我这样做
发出的 sql 总是在寻找 ID(并使用零):
我做错了什么,还是foreign_keys
在与 的belongs_to
关系中使用有问题include
?
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
ruby-on-rails - Rails ActiveRecord 关联更新不一致
我遇到了一些我不理解的 Rails 2.3.5 ActiveRecord 行为。似乎一个对象可以以不一致的方式更新其关联 ID。
最好用一个例子来解释:
创建一个Post
带有字符串属性的模型'title'
和一个Comment
带有字符串属性的模型'content'
。
以下是关联:
场景#1:在下面的代码中,我创建Post
了一个关联的,通过'ing 第一个Comment
创建第二个,将第二个添加到第一个并发现第二个与第二个关联而没有显式分配。Post
find
Comment
Post
Post
Comment
场景#2:再次运行上面的命令,但是这次插入一个额外的命令,从表面上看,应该不会影响结果。额外的命令post2.comments
是在创建之后comment2
和添加到.comment2
post1
请注意,在此场景中只有一个与相关联的评论,post2
而在场景 1 中则有两个。
大问题:为什么要post2.comments
在添加新的之前运行Comment
以post1
对与评论相关联的评论产生任何影响post2
?
ruby-on-rails - 如何在 Rails 中创建“双向”多对多关系?
假设我们有一个摄影网站。任何作者都可以订阅以接收来自任何其他作者的更新。显然,如果作者 A 订阅了作者 B,这并不意味着 B 订阅了 A。所以我们建立模型
这样我们就可以使用
- some_author.subscribed_by_author -- some_author 订阅的作者列表。
- 对于任何订阅,我们都可以知道两端(谁订阅了谁)
但问题是如何仅使用rails(不使用普通SQL)获取订阅某个作者的人员列表,即得到答案:“谁订阅了some_author?”
问题:Rails 中是否有能力让双方的关系发挥作用,即不仅是写作some_author.subscribed_BY_author
,还有拥有some_author_subscribed_TO_author
?如果有,那是什么?
PS明显的解决方案是
- 更改数据库设计,添加名为“direction”的列
- 每次创建订阅时创建 2 条记录
添加到作者模型
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'"
但我想知道是否有不改变数据库设计的解决方案。