Нужен способ привязки параметров в select через активную запись

#ruby-on-rails #activerecord

#ruby-on-rails #activerecord

Вопрос:

Есть ли какой-либо способ использовать параметры привязки в rails для выбора метода активной записи?
У меня есть запрос типа

 SELECT column * #{param1} / #{param2} as value
FROM table
ORDER BY value
  

Итак, у меня есть внешние параметры, которые я хочу привязать.

Нужно что-то вроде

 Table.select('column * :param1 / :param2 as value', 
             {param1: param1, param2: param2})   
      .order('value').all
  

Ошибка в этом запросе
Unsupported argument type: Hash. construct an Arel node instead.

Комментарии:

1. Если вы еще этого не сделали, я настоятельно рекомендую вам прочитать руководство Rails по интерфейсу запросов. Он расскажет вам, что вам нужно знать: guides.rubyonrails.org/active_record_querying.html 🙂 В нем должно быть описано, как добавлять параметры в блоки запросов … также вы пробовали то, что предлагаете? это не удалось? если да — можете ли вы сообщить нам сообщение об ошибке, которое вы получили?

2. Я попробовал этот запрос и попытался покрыть его [] , но select не ожидайте этих аргументов. Также я искал решение в документации и в Google, но не нашел ничего похожего с моей проблемой

3. «можете ли вы сообщить нам сообщение об ошибке, которое вы получили?» 🙂 Также — вы пробовали обычную интерполяцию строк… просто чтобы посмотреть, работает ли это? (вы не хотите сохранять интерполяцию строк, поскольку это небезопасный sql, но для проверки, есть ли что-то серьезное в вашем запросе, стоит попробовать)

4. @TarynEast Обычная строка -интерполяция сработала нормально, в вопрос добавлено сообщение об ошибке

5. круто, так что, по крайней мере, мы можем быть уверены, что просто selects не нравится hash-config, а не что-то не так с оператором…