问题标签 [sti]

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

ruby-on-rails - STI 和虚拟属性继承 (Rails 2.3)

假设我有一个 STI 关系,其中 Commentable 是超类,而 NewsComment 是子类。在可评论我有:

在新闻评论中:

实例化 NewsComment 时,不会继承 VA self.opinionated。这是为什么?你怎么能“强制”NewsComment 继承自 Commentable?

0 投票
2 回答
465 浏览

ruby-on-rails - Rails STI mysql 查询不使用“类型”列

我有以下型号:

问题是,当我查找标记或Metting 的“标签”或“术语”时,我会得到该标记或Metting 的所有“标签”“术语”。例如:

在这种情况下,Metting 只有一个与之关联的术语而不是标签。rails 生成的查询没有使用“Metum”中的“type”列来区分标签和术语。有什么想法可以解决这个问题,以便在上述调用中只返回标签和术语?

谢谢。

0 投票
1 回答
66 浏览

sql - 在这种情况下可以使用 STI 吗?

我有一个名为people Each的表,person可以是 a client、 a manager、 anaccountant或三者的任意组合。除了表中的列之外,它们中的每一个都有特殊的表列people

我现在正在做的是person_id在每个表中使用 a ......但我认为只使用同一个表和每个表的不同模型会简单得多,所以我可以单独管理它们。

我应该这样做吗?

0 投票
1 回答
934 浏览

ruby-on-rails - Rails 单表继承 (STI):对派生模型的依赖

我即将在我的 Rails 2.3 应用程序中使用 STI。

我已经按照以下方式对其进行了建模:

基类:

它的子类:

当我尝试创建一个form_for :tariff时,我得到了一个未定义的方法 `tariffing_periods' 用于 Tariff。我应该如何对这种情况进行建模?我应该把 has_many 关联放在父类上吗?

0 投票
1 回答
88 浏览

ruby-on-rails - 关于 STI 实施的两个简单问题

我正在为我的用户模型使用 STI。我有一个用户类,以及卖方和客户的子类。用户不能两者兼有,所以我认为 STI 适合这种情况。我有两个问题:

  1. 如何限制用户实例的创建,以便只能创建卖家或客户?我想我可以验证 Type 的存在,但这对我来说感觉不太对。

  2. 我可以为 STI 的卖家和客户提供额外的不同字段吗?如何?

0 投票
1 回答
752 浏览

ruby-on-rails - Rails:STI 结构中的子类需要多态关联?

我正在做一个爱好项目,并且有一个Event带有 STI 子类Meal, Outing,Medication等的抽象模型。Event父模型有start_time, end_time,description等。

我想为各种子类提供嵌套资源。例如,我希望能够将类的多个实例附加Image到任何子Event类。我希望能够将Medicine类的多个实例附加到Medication实体、 to 的多个实例LocationOuting

我考虑多态性的原因是为了提供灵活性,以便可以想象,任何不同类型的嵌套资源都可以附加到的任何子类上,Event.这将允许某人将“维生素 D 补充剂”的药物附加到 aMeal上,例如.

我的问题是:

  1. 嵌套资源应该是多态的吗?
  2. 如果我使它们成为多态的,所有实例都会包含Event在类型表中吗?
  3. 如果是这样,我应该让他们has_many建立关系吗?
  4. 使它们has_many与多态相比有什么性能优势吗?
0 投票
1 回答
229 浏览

ruby-on-rails - 在创建视图和控制器时访问 STI 类型

大家好,我有一个 2 模型客户和膳食。

客户端.rb

膳食.rb

意见/客户/_form.html.erb

当我保存膳食类型时,它不会出现在客户端的 index.html.erb 上(它是空白的)。问题是什么?如何通过使用以下控制器为他提供膳食类型(例如“午餐”)来创建客户:

0 投票
2 回答
1175 浏览

ruby-on-rails - Rails、STI 和“成为” - f.object.errors 未显示在视图中

我的问题是:为什么不.becomes将错误传递给新对象?这不是预期的行为吗?


我在 Rails 应用程序中有以下单表继承类:

我想使用相同的控制器和一组视图来编辑LegalDocuments 和MarketingDocuments,所以我使用DocumentsController < ApplicationController以下editupdate操作:

在我edit看来,以下几点:

  • 如果填写了标题,则文档会正确更新。
  • 如果标题留空,我将返回编辑视图,但未显示错误。

从调试中,我知道它没有显示,因为它f.object.errors是 nil。 但是,从调试中,我也知道@document.errors不是 nil,正如预期的那样。


我的问题是:为什么不.becomes将错误传递给新对象?这不是预期的行为吗?

0 投票
2 回答
1029 浏览

ruby-on-rails - Rails Sti:单路径,不同的控制器

有性病课程:

每个类的控制器,

和路由:

如何在单个路径上通过 FirstTypePageController 处理 FirstTypePage,通过 SecondTypePageController 处理 SecondTypePage?

IE

user/1/page/2 由:如果“page 2”类型为“FirstTypePage”,则由 FirstTypePageController 处理,如果“page 2”类型为“SecondTypePage”,则由 SecondTypePageController 处理?

更新:我的解决方案:

我认为这个解决方案可以在少量页面类型上快速运行,并且我们可以管理内存大小,用于大量页面上的路由

0 投票
1 回答
1353 浏览

ruby-on-rails-3 - 带有 has_many 的 Rails 和 STI 无法识别子类

我有以下内容:

所以,一个系列有很多组件,一个组件属于一个系列。我使用 STI 将组件分为 Bases、Shafts 和 Capitals。

但是,当我想列出属于系列的组件时,按组件类型我得到

也许我错过了关于 Rails 和 STI 的一些非常基本的东西。这应该工作吗?(注意,我在表上有一个类型列,其中包含类。我在初始化文件中“需要”子类定义,正如 Stackoverflow 上其他地方所建议的那样)