Как выполнить поиск по идентификатору или имени в Active Record с помощью мета-поиска?

У меня есть модель, сказать:

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

Я хочу найти эту модель, используя meta_search ( https://github.com/ernie/meta_search). Как мне выполнить поиск по идентификатору или имени?

Я пробовал это, но не работает:

MyModel.search(id_equals_or_name_contains: 'sample text')

В мета-поисковом документе говорится, что они не поддерживают другой тип соответствия ( https://github.com/ernie/meta_search), поэтому как мне этого добиться?

1 ответ

Вы ожидаете, что образец текста будет целым числом или строкой? Если это так, вы можете реализовать простое условное выражение, используя описанную здесь функцию: Проверить, является ли строка в целом целым числом в кавычках, используя Ruby?

s = 'sample text'
if !!(s =~ /^[-+]?[0-9]+$/)
  MyModel.search(id_equals: s.to_i)
else
  MyModel.search(name_contains: s)
end
Другие вопросы по тегам