Я хотел бы захватить строки с "0", когда у меня есть такие значения:
" 0 , 1,8,9,10"
"10"
" 0 , 1"
"4,5"
"1,5,10"
Код, который я унаследовал, захватывал значения обоих«0» и «10», что неверно:
scope :short_result_contains_value, -> (game_id, value) { where(game_id: game_id).where('short_result LIKE ?', "%#{value}%")
Я пытаюсь использовать регулярное выражение для ужесточения поискового запроса, но не могу получить регулярное выражение для захвата каких-либо значений:
scope :short_result_contains_value, -> (game_id, value) { where(game_id: game_id).where('short_result ~ ?', "/\b(#{value})\b/")}
Когда я его запускаю, я вижу в журнале, что выполняется следующий запрос:
SELECT "game_results".* FROM "game_results" WHERE "game_results"."game_id" = $1 AND "game_results"."game_id" = $2 AND (short_result ~ (0')
ActiveRecord не захватывает ни одно из значений, когда это должно быть.Как можно исправить регулярное выражение?Спасибо!
Я использую Postgres и использую Rails 4.2, Ruby 2.3.7.