Ruby:如何返回数组列包含给定字符串的所有行?

时间:2012-06-06 20:24:56

标签: ruby-on-rails ruby database

我正在处理一些市政数据,而且由于某些市政当局在技术上属于多个县 - 我在数据库中将其作为数组处理,因此很复杂:

[<Municipality id: 11590, name: "Wisconsin Dells", county: ["Adams", "Columbia", "Juneau", "Sauk"], latitude: nil, longitude: nil, created_at: "2012-06-06 20:05:20", updated_at: "2012-06-06 20:05:20", municipality_type: "City">]

如何在Ruby 中构建一个调用,这将返回county包含给定字符串的所有市政当局?

理想情况下,这就是我列出某个县的所有城市的方式,例如。

编辑:我的serialize :county课程中有Municipality

1 个答案:

答案 0 :(得分:2)

class Muni < ActiveRecord::Base
  def self.for_county(county)
    where %Q[county like '%"#{county}"%']
  end
end

或者,速度较慢,但​​如果你“只是不想搞乱SQL”:

def self.for_county(county)
  all.select { |m| m.county.include? county }
end