如何使用元搜索在Active Record中按ID或名称进行搜索?

时间:2013-09-04 10:36:21

标签: ruby-on-rails meta-search

我有一个模特,说:

class MyModel <ActiveRecord::Base
  attr_accessible :id, :name
end

我想使用meta_search(https://github.com/ernie/meta_search)搜索此模型, 如何按ID或名称搜索?

我尝试了这个但不起作用:

MyModel.search(id_equals_or_name_contains: 'sample text')

元搜索文档说它们不支持不同的匹配类型(https://github.com/ernie/meta_search#ored-conditions),那么我应该如何实现呢?

1 个答案:

答案 0 :(得分:0)

您希望示例文本是整数还是字符串?如果是这样,您可以使用此处描述的函数实现一个简单的条件:Test if a string is basically an integer in quotes using Ruby?

s = 'sample text'
if !!(s =~ /^[-+]?[0-9]+$/)
  MyModel.search(id_equals: s.to_i)
else
  MyModel.search(name_contains: s)
end