ruby-on-rails - Ruby on Rails has_many 多态

标签 ruby-on-rails ruby activerecord polymorphism associations

我有一个模型,Item。
每个项目都有_许多特征。
特征可以是很多不同的东西:
大小特征
配料特质
flavor 特征
等等

如何在 Ruby on Rails 中建立这种关系?在普通的 Ruby 应用程序中,我可以只使用 duck typing,但这需要存储在数据库中。

这就像 belongs_to 的逆向多态:true

我想避免单表继承,因为这些特性虽然共享鸭子类型接口(interface),但功能却截然不同。这会导致表中有很多未使用的字段,而且这似乎是一种困惑、令人困惑的处理方式。

StackOverflow 上已经有几篇关于此的帖子,但其中一篇的情况与我的情况不同,另一篇的解决方案相当狡猾,我想看看是否有更好的。

最佳答案

您不能跨多态关联进行联接。最好的方法是像您之前提到的那样,只接受 STI。尽管您可能会争辩说您将拥有多个字段,但它们都将为空,但至少 Rails 将能够进行合理的连接以帮助您进行查询。

关于ruby-on-rails - Ruby on Rails has_many 多态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45094024/

相关文章:

ruby-on-rails - Rails ActiveRecord 通过 has_many 关联使用不同的键访问记录

ruby - 在不创建新字符串的情况下在 Ruby 中修剪字符串的规范方法是什么?

sql - 如何在单个查询中从 ActiveRecord 中的父项中选择唯一子项?

ruby-on-rails - Rails 3 在作用域中编写 IN 子句的最佳方式?

java - AES/CBC/PKCS5Padding 在 java 中加密在 ruby​​ 中解密

ruby-on-rails - 如何确定哪些 Ruby-on-Rails 代码生成了一些 SQL?

ruby-on-rails - ajax 检查电子邮件是否已经存在 Ruby on Rails

ruby-on-rails - Rails 委托(delegate)和别名 - 无限循环?

ruby-on-rails - 如何解决这个问题?无法为 UsersController 找到 "Unknown action The action ' 索引”

ruby - 在 Nokogiri 完成抓取之前,Watir-webdriver 正在通过脚本进行处理