【发布时间】:2016-11-26 06:39:12
【问题描述】:
我不确定是否已经对此进行了解释,也许我问错了问题,但我希望有人可以帮助我解决这个问题。
我正在寻找模型数组中的值。我的模型如下所示:
class Product < ActiveRecord::Base
# product_category :text
serialize :product_category, Array
end
一个条目的例子:
#<Product:0x0055cd0c1382b8> {
:id => 42266,
:product_category => [
[0] 8, [1] 3
]
}
我需要找到属于product_category3 或3 和其他类别组合的所有产品。
我尝试了类似的东西
ap Product.where(product_category: [8])
但这不会返回任何东西。
如果这个问题已经被问过,请转发给我正确的答案。如果没有,非常感谢您花时间帮助我。
跑步:
- Rails 4.2.4
- Ruby 2.3.1.p112
- SQLite3
【问题讨论】:
-
您似乎应该重组您的数据库并使用带有产品类别的
has_and_belongs_to_many或has_many :through,而不是序列化产品类别列。这将使搜索更容易 -
不可能通过序列化字段查找。你应该按照@j-dexx 的建议重构你的数据库。
-
您使用的是什么数据库?什么类型的列。如果您在 Postgres 中使用 JSON 样式的列,那么您可以查询数组内容。
标签: ruby-on-rails arrays ruby serialization models