【发布时间】:2018-09-28 20:15:03
【问题描述】:
从概念上讲,我想做的是能够说:产品 a 有 5 种颜色可供选择,这将是一组颜色 ID。这些颜色 id 是链接到颜色表的键,颜色表包含颜色相关数据,例如十六进制表示、彩色图像等。最后,我想将颜色表与产品表连接起来,以便提取颜色相关数据。
在我当前的设置中,我有两个表:products 和 colors。在我的 products 表中,我有一列 (color_ids) 包含一个整数数组。此数组保存colors 表中colors 的ID。为了在 Rails 中加入这两者,我在 Product 类中创建了一个自定义 SQL 字符串,例如:
class Product < ApplicationRecord
has_many :colors
def self.custom_query
"SELECT * FROM products JOIN colors on colors.id = ANY(products.color_ids)
WHERE products.name = 'Some Product'"
end
end
我尝试使用关联 (includes(:colors)) 但这似乎不起作用,因为主 ID 是一个 ID 数组。
有没有更优雅的 / Rails 方式来实现我想要做的事情?
【问题讨论】:
标签: ruby-on-rails postgresql associations