问题标签 [polymorphic-associations]

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

ruby-on-rails - Rails 多态模型。如何在视图上显示表单验证错误?

我的多态关联上的所有东西都在工作,但是如果我有模型验证,错误就不会出现。

在我的控制器中,我有:

在模型中:

很标准的东西。但事实是,当 render :action => 'edit' 发生时,它会转到正确的页面,但错误不会出现。

我的 new.html.erb 视图:

我的控制台输出:

0 投票
5 回答
11525 浏览

ruby-on-rails - Rails 多态 has_many

使用 Ruby on Rails,如何实现多态has_many关系,其中所有者始终是已知的,但关联中的项目将是某种多态(但同质)类型,由所有者中的列指定?例如,假设产品Producerhas_many但生产者实例实际上可能有许多自行车、冰棒或鞋带。我可以很容易地让每个产品类(自行车、冰棒等)与生产者有belongs_to关系,但是给定生产者实例,如果产品类型不同(每个生产者实例),我如何获得产品集合?

Rails 多态关联允许生产者属于许多产品,但我需要相反的关系。例如:

所以我的 Producer 表已经有一个“类型”列,它对应于某些产品类别(例如自行车、冰棒等),但我怎样才能让 Rails 让我做类似的事情:

对不起,如果这是明显的或常见的重复;我很难轻松实现它。

0 投票
2 回答
1193 浏览

ruby-on-rails - 如何根据多态关联类型(Rails)应用不同的验证规则?

我有 Rails 多态模型,我想根据关联的类应用不同的验证。

0 投票
1 回答
416 浏览

ruby-on-rails - RoR:在这种情况下我应该使用belongs_to, :polymorphic 吗?

我正在开发一个项目,其中许多 ActiveRecord 模型都可以进行与之关联的对话。用户可以讨论网站的几乎所有方面。关于如何实施,我有两个想法。

1)在资产中使用belongs_to,而不是对话——对话将完全不知道它的资产

2) 在对话中使用belongs_to, :polymorphic => true

建模这种关系的正确方法是什么?如果我要陈述这种关系,我会说“一个产品/采购订单可能有一个对话”。

0 投票
4 回答
22380 浏览

mysql - 许多表之一的外键?

设置外键约束的常用方法是选择外键将指向哪个表。

我在一个表和一组表之间存在多态关系。

这意味着该表将与集合中的其中一个表有关系。

例如。

在上面的示例中,如果 person_type 是“subordinates”,那么 person_id 应该是从属.id 的外键,产品也是如此。

所以我想知道,是否有可能对许多表之一有一个外键,或者您是否必须在分配一个表时专门设置它指向哪个表。

这个问题适用于 MySQL 和 PostgreSQL。

谢谢

0 投票
2 回答
187 浏览

ruby-on-rails - 如何在 Rails 中指定通过多个模型的关联

我正在编写一些棘手的多态关系来处理标记。

我有一个Tag模型和一个Tagging属于多态的模型taggable

我有一个Item模型,它has_many :taggings, :as => :taggable,和has_many :tags, :through => :taggings,所以我可以调用@item.tags

这一切正常。

我想将另一个模型加入到组合中-a Storewhich has_many :items。我希望能够使用@store.tags.

这是我所拥有的:

但是,这将返回taggings与商店中的所有项目相关联的,而不是实际的标签。

如何通过项目、标签指定商店 has_many 标签?

如果需要,可以发布更多信息 - 试图防止信息过载!谢谢 :)

0 投票
1 回答
115 浏览

ruby-on-rails - 棘手的关联问题 Rails

假设有 50 个用户对 VoteItem1 进行了投票,那么找出这 50 个用户中的大多数投票的其他 VoteItem 的最佳方法是什么?

谢谢

0 投票
2 回答
85 浏览

ruby-on-rails - 编写正确的验证错误?

更新:用更详尽的描述解决了整个问题

好的,不同名称的相同问题。

在我的模型中,我确实验证了存在。

但是,如果其中一个为空白,则会出错:

这就是问题所在。我有一个嵌套表单模型,其中包含可动态添加的部分。从这里开始:

http://railscasts.com/episodes/197-nested-model-form-part-2

这就是生成和调用 _quick_fact_fields.erb 的原因。但这完美地工作并且位于quick_facts/_quick_fact_fields.html.haml

更新:我的控制器代码

组织控制器.rb

0 投票
3 回答
2682 浏览

ruby-on-rails - Rails中的双向多态连接模型?

我正在开发一个多站点 CMS,它具有站点之间交叉发布的概念。多种类型的内容(文章、活动、简历等)可以与许多站点相关联,并且站点可以有许多内容。内容片段和站点之间的多对多关联还必须支持每个关联内容项的几个共同属性——站点起源的概念(这是内容出现的原始站点吗?)以及给定关联站点上给定内容的“主要”和“次要”内容状态。

我的想法是创建一个名为 ContentAssociation 的多态连接模型,但我无法让多态关联按我预期的方式运行,我想知道我是否可能把这一切都搞错了。

这是我对连接表和模型的设置:

我已经尝试了上述关联声明的很多变体,但无论我做什么,我似乎都无法获得我想要的行为

或这个

Rails 的内置多态性是否是用于影响站点及其各种内容之间的这些连接的错误机制?看起来它很有用,因为我需要以多对多的方式将多个不同的模型连接到一个通用模型,但是我很难找到以这种方式使用它的任何示例。

也许复杂性的一部分是我需要双向关联——即查看与给定文章关联的所有站点查看与给定站点关联的所有文章。我听说过插件has_many_polymorphs,看起来它可以解决我的问题。但我在这里尝试使用 Rails 3,但不确定它是否受支持。

非常感谢任何帮助——即使它只是让我更加了解我对多态性在这种情况下的使用的不完全理解。

提前致谢!

0 投票
1 回答
1459 浏览

ruby-on-rails - RoR 成就系统 - 多态关联和设计问题

我正在尝试在 Ruby on Rails 中设计一个成就系统,但我的设计/代码遇到了障碍。

尝试使用多态关联:

迁移:

然后,当我尝试以下一次性单元测试时,它失败了,因为它说成就为空。

还有我的固定装置:results.yml...

weight_achievements.ym...

即使,我无法让它运行,也许从宏观的角度来看,这是一个糟糕的设计问题。我试图做的是有一个包含所有成就及其基本信息(名称和描述)的表。使用该表和多态关联,我想链接到包含完成该成就的标准的其他表,例如,WeightAchievement 表将具有所需的权重和锻炼 ID。然后,用户的进度将存储在 UserProgress 模型中,在该模型中链接到实际的成就(而不是 WeightAchievement)。

我需要单独表格中的标准的原因是因为标准在不同类型的成就之间会有很大差异,并且会在之后动态添加,这就是为什么我没有为每个成就创建单独的模型的原因。

这甚至有意义吗?我是否应该将成就表与特定类型的成就(如 WeightAchievement)合并(所以该表是名称、描述、weight_required、exact_id),然后当用户查询成就时,我只需在我的代码中搜索所有成就?(例如 WeightAchievement、EnduranceAchievement、RepAchievement 等)