Rails查询数组属性包含与其他数组重叠的位置

时间:2013-03-10 05:28:25

标签: ruby-on-rails orm where

我有一个名为Listing的模型,代表公寓转租的列表。这些转租可以出租不同的条款(夏季,冬季等)。因此,每个转租的术语都存储为序列化字符串。 (我知道这不是最好的方法,但我正在尝试使用此应用程序)我正在为这些列表创建过滤功能,因此用户可以在列表中选择他们想要的属性并显示与过滤器匹配的结果。但是,我遇到了麻烦,部分一词。用户可以检查他们希望列表可用的术语,因此它也存储在序列化数组中。使用rails orm我该怎么办

listing=listing.where("term contains value(s) from input term")

基本上我希望这可以返回用户首选条款与列表条款至少重叠的列表。

即。如果列表中包含夏季会话1和冬季的条款,并且用户选择夏季会话1和春季,则应返回该列表。

任何人有任何想法吗?

1 个答案:

答案 0 :(得分:0)

这就是你要找的东西:

listings = Listing.where('term in (?)', terms)

或者您可以这样做:

listings = Listing.where(:term => terms)