问题标签 [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.

0 投票
1 回答
200 浏览

ruby-on-rails - 为什么这个 Rails 关联快捷方式会失败?正确的方法是什么?

在给定的情况下,用户可以:

  • 邀请许多受邀者(has_many :invitations)
  • 接受一份邀请(has_one :invitation)

根据http://guides.rubyonrails.org/association_basics.html#the-has_many-through-association has_many :through关联应该允许我使用类似于以下功能测试中的快捷方式。

但是,它失败并出现注释中指出的错误。

功能测试的片段:

来自被测方法的片段:

邀请的相关部分.rb:

user.rb 的相关部分:

现在我想知道:

  • 什么是正确的“捷径”?
  • 我的模型首先设置正确吗?
0 投票
2 回答
1116 浏览

ruby-on-rails-3 - 如何使继承资源可选地嵌套为单例?

我正在使用inherited_resources 来干燥我的控制器,但无法弄清楚如何使特定控制器正常运行。在我的模型中,User has_one Person. 我希望它可以选择性地嵌套,嵌套时表现为单例,不嵌套时表现为非单例。换句话说,我希望能够列出所有已知的人 (/people),获取人员 #5 (/person/5),并获取用户 10 的唯一人员 (/user/10/person)。routes.rb 中的以下内容:

...按照我的预期设置路线:

... 很好。现在,如果在 PeopleController 中,我使用:

...然后非嵌套 /people url 工作,但嵌套 /users/:user_id/person url 不:undefined method 'people'如果相反,在 PeopleController 中,我使用:

...然后嵌套的 /users/:user_id/person url 起作用,但非嵌套的 /people url 不起作用,因为它被视为单例,即使是非嵌套的:undefined method 'person'

摘要:有没有办法让inherited_resources 在通过嵌套路由访问时将资源作为单例处理,但在通过非嵌套路由访问时作为非单例处理?

0 投票
2 回答
1925 浏览

ruby-on-rails - RailsAdmin:编辑和列表视图中的多态 has_one 关联呈现

所以我有以下模型结构

这个 RailsAdmin 配置:

当我创建一个新的 Stone-Record 时,它正在工作,但 Product 字段已折叠。但是由于每块石头都必须填写所有产品字段(根据模型中的验证),我希望它们始终不折叠。我尝试添加visible到配置中,但这不起作用...

此外,当我想在 RailsAdmin 的 Stone 列表视图中显示 name 属性时,它无法通过提供field :product配置来工作......我无法理解它,即使在阅读了整个 wiki 和搜索之后像疯子一样在谷歌上...

0 投票
1 回答
401 浏览

cakephp - CakePHP 上的 hasOne 子类型

我的数据库上有 3 个用户表:

  • Users
  • users_twitter
  • users_web

Users 是 和 的父users_twitterusers_web

然后是另一个评论表。两种用户都可以发表评论。

因此,当我想显示评论时,我需要获取每条评论的作者信息。为了做到这一点,我正在使用这样的$belongsTo变量/Model/Comment.php

在 Controller/CommentController 中,当我这样做时:

我得到这种数组:

我想要的是获得更多信息,用户的子类型之一,这取决于子类型表上 ID 的存在。

如果它是 user_web 表的 id,我想得到这个:

您知道 CakePHP 是否可以做到这一点?据我所知,$hasOne我只多升一级,我需要两级。

0 投票
1 回答
102 浏览

ruby-on-rails-3 - 如何通过 has_many through 关联设置 has_one through 关联?

我有一个用户模型、一个会员模型和一个俱乐部模型。我已经建立了以下协会:

俱乐部.rb

会员资格.rb

我现在想要的是在 Club 上有一个 has_one :organizer,它根据在 join 模型中将 Organizer 属性设置为 true 的成员检索单个用户记录。

如何建立这个 has_one 关联?我尝试过通过会员协会,但提出了一个例外,即会员是一个集合并且需要是单数的。

0 投票
3 回答
2101 浏览

ruby-on-rails - 在 Rails 中,使用 Mongoid,如何找到所有具有有效(非零)has_one 引用的模型?

所以我有两个这样的模型

假设我在 rails 控制台中有一个名为 mp 的 ModelParent 持久实例

然后做

它返回一个有效的对象

但是,如果我像这样搜索它:

它返回 0

我已经尝试创建model_child,然后分配它,也使用build_model_child(),并且每个方法都显示model_child清楚地在父级中,但是查询not nil(.ne)无法找到所有有孩子的ModelParents。

我究竟做错了什么?

更新:

回答我自己的问题。我仍然不确定为什么 :model_child.ne => nil 不起作用,但是......

我通过编写如下代码解决了这个问题:

0 投票
1 回答
67 浏览

ruby-on-rails - 模型属于另一个模型中的多个属性

这可能是一个愚蠢的问题,但我在这里有点困惑:

我有一个用户模型,它有两个属性:头发和眼睛,可以有一个颜色值。

我宁愿在用户表的头发和眼睛列中将颜色作为字符串引用两次,而是将一个单独的颜色模型关联到我的用户模型,我的属性将指向该模型。

我不知道该怎么做。我需要 has_one、has_many 还是多态关联?如何设置我的用户和颜色模型?我需要为头发和眼睛创建特定模型吗?

这是我在 rails 控制台中想要的:

我知道这是一个非常基本的问题,但我真的需要一些帮助!

谢谢 ;)

0 投票
1 回答
3472 浏览

ruby-on-rails - 在 Rails 中使用 form_for 编辑 has_one 对象

我在两个模型之间有一个 has_one / belongs_to 关联-> 用户和 ContactCard。虽然我可以为用户创建联系人卡片,但每当我尝试编辑卡片时,都会从 ContactCardsController 调用创建操作,而不是更新(我可以判断,因为每个卡片都有不同的成功消息)。我不得不说,它改变了联系人卡片的属性。我很高兴它的工作,但宁愿修补我对 Rails 路径和关联的理解中的任何差距。我错过了什么?为什么不使用我期望的动作?此外,如果您知道我可以研究的网络或 github 上的任何相关示例,我会全神贯注。谢谢!

联系卡控制器...

链接编辑表格...

编辑表格...

相关路线...

User 模型 has_one :contact_card 和 ContactCard 模型 belongs_to:user

0 投票
1 回答
394 浏览

ruby-on-rails - Rails:如何为车辆及其所有类型建模

我有一个车辆模型:

在这个类中,我希望有可扩展数量的车辆类型,例如“乘用车”、“摩托车”、“卡车”,每种类型都有自己独特的强制属性。例如,PassengerCar 可能需要门的数量,而这不适用于 Motorcycle 类型。同时,motorcycles 和passenger_cars 在创建时都应该要求/继承Vehicle 的强制属性。

这里的关键是我无法真正预测可能发明或需要存储的不同类型车辆的数量。所以,我需要一种可扩展的方式来添加新的车辆类型。此外,就 UI 和视图而言,如果我的类型在下拉菜单中不可用,那么能够创建一个新的 Vehicle 类型会很好,并且让 db 填充 Vehicle 类型和将其反映到 UI 中。

用 Rails 建模这种关系的最佳方式是什么?我正在考虑使用 has_one :through 关系,但我不确定这是最好的方法。例如,车辆将分配给操作员。一个人一次只能操作一辆车……所以,我可以说:

但是,必须将所有可能的类型添加到 Vehicle 模型中似乎很笨拙,并且由于 Operator 一次只能驾驶一辆 Vehicle,因此将所有其他类型的车辆放在 Vehicle 模型的 :has_one 语句中似乎是多余的。

任何想法都非常感谢!

0 投票
2 回答
1137 浏览

ruby-on-rails - 使用 has_one 关联的 Rails 方法中的 NoMethodError

这是我的代码:

// 在swimmer.rb(模型)中:

// 在 user.rb (model) 中:

// 在游泳者控制器.rb 中:

// 在 profile.html.erb 中(在游泳者视图文件夹中)

如果游泳者对象的 user_id 与游泳者#controller 方法中的 @swimmer 实例变量匹配,因为有一个登录用户(使用 Devise gem)并且已经为该用户创建了一个游泳者,那么配置文件视图的工作方式为故意的。如果没有,页面会显示错误:

但由于配置文件视图具有 if/else 条件,我希望缺少与登录用户关联的游泳者对象以强制视图显示 else 内容。显然,“Swimmer.find_by_user_id(current_user)”方法是在 NilClass 中创建一个 nil 对象。我如何得到它以使其不产生任何东西,从而产生 else 条件?

回购位于https://github.com/drollwit/vst2/tree/ver2。这是一个练习,而不是一个真正的项目。这里可能有一个简单的答案,但我想不通(仍在学习 Rails 基础知识)。任何帮助,将不胜感激。