Ruby on Rails 3 - Rails3 初学者 - 如何识别字符串中具有特定单词的记录



我正在努力寻找一个命令,使我能够识别数组中包含特定单词的那些记录,并想知道是否有人可以指出我正确的方向。

基本上,我在一列中有姓名,在另一列中有地址。 我现在想将数据限制为某个城市的人,因此例如,我想显示所有居住在伦敦的人 - 即"伦敦"必须包含在他们的地址字符串中。

是否可以使用 WHERE 和 LIKE 函数以某种方式执行此操作?

可以使用 LIKE 关键字来获取此类信息,但如果不使用单个字段来存储地址,而是使用多个字段,您会更好:

 Users           Addresses             Countries
-------------   -------------------   -------------
 user_id         address_id            country_id
 address_id      country_id            titile
 full_name       city_id
                 street_and_number

单个国家/城市有很多地址。你可以有多个人住在同一个城市,甚至有相同的街道地址。

无论如何,这将是组织数据的更好方法,特别是因为LIKE真的很慢。

附言 脚手架用于快速原型制作,而不是用于生产代码。

做这样的事情:

def SomeModel < ActiveRecord::Base
  scope :contains_city,
    lambda { |city| where("some_models.address LIKE ?","%"+city+"%" ) }
end
#Usage:
records = some_instance_of_model.contains_city "London"

相关内容

  • 没有找到相关文章

最新更新