问题标签 [has-one]
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:在 Rails 中使用带有 has_one 关联的构建
在此示例中,我创建了一个user
no profile
,然后profile
为该用户创建了一个。我尝试将 build 与has_one
关联一起使用,但结果失败了。我看到这项工作的唯一方法是使用has_many
. user
应该最多只有一个profile
。
我一直在尝试这个。我有:
但是当我这样做时:
我得到错误:
Rails 中有没有办法拥有 0 或 1 个关联?
orm - 在 CakePHP 中定义两个模型之间同时具有多和一关联的方法?
在 CakePHP 框架中,我长期以来一直遇到问题的一件事是定义两个模型之间的同步hasOne
和hasMany
关系。例如:
BlogEntry hasMany Comment
BlogEntry hasOne MostRecentComment
(最近的字段MostRecentComment
在哪里)Comment
created
在 BlogEntry 模型属性中定义这些关系是有问题的。CakePHP 的 ORM 将 has-one 关系实现为INNER JOIN
,因此只要有多个 Comment,BlogEntry::find('all')
调用就会返回每个 BlogEntry 的多个结果。
过去我曾通过几种方式解决过这些情况:
使用模型回调(或者,有时,甚至在控制器或视图中!),我已经模拟了一个 MostRecentComment :
$this->data['MostRecentComment'] = $this->data['Comment'][0];
如果我需要以除 by 以外的任何方式订购 Comments,这会很快变得丑陋Comment.created
。它也没有 Cake 的内置分页功能来按 MostRecentComment 字段排序(例如,将 BlogEntry 结果按MostRecentComment.created
.维护一个额外的外键,
BlogEntry.most_recent_comment_id
. 这很烦人,并且破坏了 Cake 的 ORM:含义是BlogEntry belongsTo MostRecentComment
. 它有效,但只是看起来......错了。
这些解决方案还有很多不足之处,所以前几天我坐下来解决这个问题,并研究了一个更好的解决方案。我已经在下面发布了我的最终解决方案,但是我很高兴(也许只是有点羞愧)发现有一些令人难以置信的简单解决方案一直以来都在逃避我。或任何其他符合我标准的解决方案:
- 它必须能够按该
Model::find
级别的 MostRecentComment 字段进行排序(即,不仅仅是结果的按摩); - 它不应该需要
comments
orblog_entries
表中的其他字段; - 它应该尊重 CakePHP ORM 的“精神”。
(我也不确定这个问题的标题是否尽可能简洁/信息丰富。)
ruby-on-rails - Rails 模型关系:有一个也属于多个
我有两个模型,Modela 和 Modelb。
Modela 只能拥有一个 Modelb,但 Modelb 可以是多个 Modela 的一部分。
我现在拥有的是
不太确定我在那里做的整个 :foreign_key 事情,但它是我离开时的位置。当我试图让 Modelb 成为许多 Modela 的一部分时,我不想将 modela_id 字段添加到 Modelb 表中。
做这个的最好方式是什么?
mysql - Ruby on Rails has_one 模型不提供 ID 列
我有一个旧版 Rails(1.2.3 版)应用程序,它在许多服务器上运行都没有问题(更不用说我的本地环境了)。但是,部署到其最新的服务器上,我现在遇到了ActiveRecord::StatementInvalid: Mysql::Error: #23000Column 'video_id' cannot be null
错误。
以下是简化的模型/关系:
下面是关系失败的 Rails 控制台记录:
有没有其他人遇到过 ActiveRecord 在清楚地知道它时不发送 ID 的情况?
php - CakePHP 有一个低效率的地方吗?
我在 CakePHP 网站上查看示例,特别是链接模型中使用的 hasOne。 http://book.cakephp.org/view/78/Associations-Linking-Models-Together
我的问题是,CakePHP 是否使用两个查询来构建使用 hasOne 链接的模型中返回的数据的数组结构?
取自 CakePHP://$this->User->find() 调用的示例结果。
希望这一切都有意义。
ruby-on-rails - has_one 更新问题
我有两个模型,用户和帐户。每个用户可能有一个帐户。
为用户创建帐户工作正常。我的问题是,当我尝试更新帐户时,以前的帐户 user_id 无效,并使用 user_id 创建了一个新帐户行。我不希望这种情况发生。我想使用对帐户的更改来更新现有行。我该怎么做呢?
谢谢。
cakephp - CakePHP:使用 hasOne 和 HABTM 的 saveAll
我设置了两个模型,需要保存在一个表单中。当用户使用“/deliveries/add/”表单时,我需要它来保存新的交付,并保存附加到该交付的新许可证。这是一个 hasOne 关系。
同样在同一个表格中,我需要选择许可证包括哪些产品和产品选项:
我遇到的问题是,CakePHP 似乎没有检测到我的许可证/产品和许可证/产品选项关系是 HABTM,并且表单助手只给了我一个单选下拉列表而不是多选下拉列表。即使我强制它成为表单助手中的倍数,它仍然不会保存数据,也不会正确填充编辑表单(即使它为产品选项提取了正确的标签)。我认为这可能与它与我的主要储蓄模式的关系如此遥远有关?
我已经在下面发布了相关代码。谢谢大家帮我看这个!
交付模型如下所示:
许可证模型如下所示:
Deliveries_controller 看起来像这样:
views/deliveries/add.ctp 如下所示:
ruby-on-rails - Ruby on Rails - 创建具有关系的实体
我是 Rails 新手,所以请善待。
我正在构建一个“rolodex”类型的应用程序,这个问题是关于同时处理创建一个实体和几个关系实体的最佳方法。
对于(一个人为的)示例:我的应用程序将有一个Person
模型,哪个has_one
Contact_Info
模型。在create.html.erb
页面Person
上,我的应用程序的用户同时创建人员和联系信息是有意义的。
在人员的创建视图/控制器中直接包含创建联系人的详细信息似乎不正确。处理这个问题的方法是什么?
ruby-on-rails - 在 RoR 中,如果我说 A has_one B,A 有一个 B 是强制性的吗?
我需要建立一个关系,以便 A 有一个 B,但是会有一些条目 A 没有 B。这可能吗?如果没有,怎么办?
谢谢阅读。
ruby-on-rails - 我应该在 ruby on rails 中使用 has_one 或 belongs_to 吗?
我希望有一个Status
在一些用户定义的设置后相对静态的模型(并且不同的用户可能有不同的状态值)。
该状态可以应用于不同的模型,例如Contact
和Event
。
所以返回的状态contact.status
将不同于event.status
我想设计应用程序,使状态表具有不同的类型(contacts
和events
)。
什么是正确的策略和格式?
我正在考虑:has_one Status
在Contact
模型中声明,并将 a 存储:status_id
在:contacts
表中。同上Event
。
:statuses
表将具有状态值、类型和日期。
这有意义吗?你能推荐一个更好的方法吗?