Я хочу знать, как найти точное слово в скобках, а не слова, включающие искомое слово. Например, если я пытаюсь найти угарный газ [CO] и если я ищу CO, я хочу, чтобы в моих результатах отображался только угарный газ [CO], а не двуокись углерода [CO2].
До сих пор у меня есть,
where("lower(gas_analyte) LIKE lower(?)", "%#{gas_analyte}%")





Не используйте подобный запрос в этом случае! Вы можете использовать условие куда, которое является результатом фильтрации текущего отношения в соответствии с условиями в аргументах. он вернет точные параметры, соответствующие записям.
where(gas_analyte:gas_analyte)
Мне нравиться возвращает что-то, совпадающее с записями ваших параметров.
Спасибо, но это не работает. Я думаю, это потому, что я только пытаюсь получить содержимое внутри скобки
Ой, извините... не могли бы вы показать мне свои записи в таблице? И чего вы пытаетесь достичь?
Sensors = Sensors.joins(setup_variable: :gas_analytes).where("lower(gas_analytes.gas)[/[(.*?) 3;/, 1] КАК ниже(?)", "#{gas_analyte}" ). Это то, что у меня есть, но это не работает. Итак, я хочу посмотреть, соответствует ли искомый контент содержимому в скобках, выполнив [/[(.*?)]/, 1], но это не работает. Итак, есть ли что-то подобное, что я могу сделать только для соответствия содержимому в скобках.
@Gases = ['Двуокись углерода [CO2]','Этанол [CH3CH2OH]', 'Угарный газ [CO]'] — это переменная, содержащая газы.
Вы можете использовать регулярное выражение в запросах ActiveRecord. В вашем примере вы можете сделать ` .where("gas_analyte ~* ?", '[CO]$') ` SO неправильно форматирует мое регулярное выражение, вы можете увидеть его здесь regexper.com/#%5C%5BCO%5C%5D%24 К сожалению,
'\[#{gas_analyte}\]$'у меня не сработало, это то, что вам придется искать и проверять. Поэтому я добавил это как комментарий