Как выполнить поиск по идентификатору или имени в 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