Rails查询:Object的Array中的任何元素都匹配Matching Array中的任何元素

时间:2017-03-19 08:25:05

标签: ruby-on-rails

好的抱歉,如果这个问题令人困惑,我会在这里清除它。例如,您有一个Train对象,其中包含stations列。因此,此stations列包含火车前往的所有火车站的数组。例如,我们有一组名为north_stations的站点。我们怎样才能找到前往任何trains的所有north_stations

在常规红宝石中,我们可以这样做:

array_one = [1,2,3,4]
array_two = [2,3,4,5]
(array_one & array_two).any?

如果2个数组至少有1个公共元素,则返回true。那么我如何传递一个数据库查询,返回所有在Train.stationsnorth_stations之间共享元素的列车?

顺便说一下,我确实遇到了this post,但它正在使用ID进行处理,我试图干涉我的rails控制台中的方法,但无法提出任何建议。

更新1: 好吧我正在使用Postgres,表列类型是string。在模型中,我使用serialize来允许它保存一组值。 2个数组的一个例子可能是,

Train.station = [
  "station 1",
  "station 2",
  "station 3"
]
north_station = [
  "station 2",
  "station 4",
  "station 6"
]

因为Train.station确实至少有一个north_station,我想返回这个特定的Train对象。因此,当我Train.where(??unknown method??)时,它将返回至少1 north_station的所有列车。

0 个答案:

没有答案