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

ruby-on-rails - RoR: has_one “或其他”?(或者,没有继承的多态性。)

大家好,我的项目有一些有趣的要求。我需要一种has_one关系,它要么是一个类,要么是另一个类,但没有继承。如果这是唯一的方法,我可以摆脱继承,但是两个关联记录具有完全不同的数据并且根本不相关。

我需要弄清楚的是以下内容。

WhereFoo有一个赋值,类型为Baror Baz; 它们只共享一个公共列,所以也许我可以从中创建一个父对象。但是,如果我让它们继承自一个通用对象(当它们包含的数据确实是橙子和苹果时)我必须为记录制作一个表吗?如果记录是抽象记录,但孩子们不是,我可以侥幸逃脱吗?

我想现在你可以看到我的困难了。我对 RoR 很陌生,但到目前为止我很喜欢它。我敢肯定有办法解决这个问题,但如果我无法弄清楚它是什么,我会被诅咒的。

0 投票
1 回答
853 浏览

ruby-on-rails - 无法访问与 has_one 相关的模型

我有两个模型:ShowVenue. 表演有一个场地,每个场地都属于表演。此条件在两个模型文件中都使用has_one&belongs_to语句正确定义。但是,我无法通过show.venue. 考虑以下代码,其中 s 是一个Show实例:

我觉得导致 MySQL 错误的行应该可以工作。这是错误:

我不知道它为什么试图访问venues.show_id. 有任何想法吗?

0 投票
3 回答
49463 浏览

ruby-on-rails - Rails中has_one和belongs_to的区别?

我试图了解has_oneRoR 中的关系。

假设我有两个模型 -PersonCell

我可以只使用has_one :person而不是belongs_to :personCell模型中使用吗?

不一样吗?

0 投票
2 回答
688 浏览

ruby-on-rails - 使用嵌套实体形式管理子关系

我想要做的是以下几点:

在任何时候,用户都可以拥有 1 个有效的个人资料。此活动配置文件必须由管理员授权,以确保其符合站点的规则和规定。当用户编辑他们的个人资料时,他们的公开个人资料不受影响,直到管理员签署他们的更改。如果他们在他们的个人资料正在审核中进行编辑,他们的编辑将应用于未完成的个人资料以供审核,并被推到队列的后面。

我的模型看起来像这样:

有一个小转折......用户不应该能够直接编辑配置文件,因为配置文件集合没有公开。相反,他们编辑他们的用户,并且配置文件字段显示在那里。

管理此问题的最佳方法是什么?目前我正在使用:

在用户中,但这似乎很hacky。理想情况下,大多数这种逻辑都存在于模型中,但我正在调情的另一件事是使用演示者。

任何想法将不胜感激,如果您需要更多信息作为评论,请告诉我,我会适当地更新这篇文章。

0 投票
2 回答
1022 浏览

ruby-on-rails - 当假定记录可能不存在时,Ruby on Rails 防止出现 nil 错误

我正在构建一个简单的图书签出应用程序。我需要做的一件事是确定一本书是否已签出。我通过 book_check_out 类设置了我的人员和书籍类之间的关联。我的目标是使用 book 的 checked_out 属性来确定当前是否已签出一本书。然而,在我目前的实现中,当一本书没有被签出并且我参考 book.checked_out.XXX 我收到错误“你没想到它有一个 nil 对象! ”我的目标是使用 book.checked_out 两个在某些视图中,目的表明是的,该书已被签出,而在其他视图中,则显示当前已签出给谁。



0 投票
1 回答
4276 浏览

ruby-on-rails - rails,has_one,build_#{association},accepts_nested_attributes_for

我正在尝试开发一个带有版本历史的 wiki。

我的计划是:每次我编辑 wiki 内容时,都应该将其另存为新内容。

目前,我有两个模型,Wiki 和 WikiContent,其中包含以下代码:

Wiki 模型有一个字段 current_id,用于知道哪些内容是当前内容。

在 Wiki 控制器中我运行

但是每当我尝试运行时:

它将 NULL 分配给 current_wiki.wiki_id。

我该如何解决?还是有另一种方法可以使它起作用?

0 投票
2 回答
783 浏览

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

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

我在看什么?

提前致谢!
~jpv

下面的所有样板文件:

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

0 投票
1 回答
968 浏览

ruby-on-rails - has_one :通过连接模型

我想构建一些东西,以便一个人可以有很多电子邮件地址,而一个电子邮件地址只有一个人,但是因为我还有另一个名为 Company 的模型,它也可以有很多电子邮件地址,我不想有列 company_id和电子邮件表中的person_id,所以我想我可以做......

人.rb

has_many :person_emails has_many :emails, :through => :person_emails

person_emails.rb

属于_to :person 属于_to :email

电子邮件.rb

has_one :person_email has_one :person, :through => :person_email

现在发生的事情是……

p = Person.first #=> "Nik" p.emails #=> 显示 Nik 拥有的所有电子邮件 p.person_emails #=> 显示 Nik 的所有 person_email 联合表记录

e = Email.first #=> Nik 的电子邮件地址之一 e.person_email #=> 显示此电子邮件的唯一一个 person_email 联合表记录 e.person # 在 where 子句中说未知列“people.email_id”失败

我想要... e.person #=> "Nik"

有谁知道问题可能是什么?

谢谢你

0 投票
1 回答
3537 浏览

ruby-on-rails - 如果我对 has_one 使用 :class_name 属性,我应该在迁移中添加什么?

我的 Rails 应用程序中有一个模型,它使用以下:class_name属性has_one

我现在有点不确定在这个类的迁移中添加什么。我可以使用参考吗?Rails 将寻找什么作为列名:main_bar?我可以这样做吗?

谢谢!

0 投票
2 回答
266 浏览

ruby-on-rails - Rails:将模型与其中两个相关联

我试图这样做:

因为我想让用户重复事件并同时更改多个即将到来的事件。我做错了什么,还是有其他方法可以做到这一点?不知何故,我需要知道上一个和下一个事件,不是吗?当我在 consolewith 中对此进行测试时Event.all[1].previous_event,出现以下错误:

这里出了什么问题?非常感谢您的帮助。