Выбор всех записей, если у записи есть какой-либо из идентификаторов из массива
Доброе утро, переполнение.
У меня проблема, пытаясь выбрать всеTreatments
которые имеют любой из идентификаторов, хранящихся в массиве под названием@problem
.
Вот мой диспетчер процедур.
@problem = Remedy.find_by_sql(["SELECT id FROM remedies WHERE LOWER(\"remedyName\") LIKE?", "%#{params[:searchremedy]}%".downcase])
query = "SELECT * FROM treatments INNER JOIN remedies_treatments on treatments.id = remedies_treatments.treatment_id WHERE remedies_treatments.treatment_id LIKE ?"
@pretreatments = Treatment.find_by_sql([query, @problem])
Это ошибка из консоли
ActiveRecord::StatementInvalid (PG::SyntaxError: ERROR: syntax error at or near ","
LINE 1: ...d WHERE remedies_treatments.treatment_id LIKE 233,234,224
Оператор «LIKE», вероятно, не то, что мне нужно для того, что я ищу, - я пытался использовать ЛЮБОЙ оператор, но безрезультатно. Проблема связана с тем, что это массив целых чисел?
Модель лечения.
class Treatment < ActiveRecord::Base
has_and_belongs_to_many :remedy
end
Модель Remedy.
class Remedy < ActiveRecord::Base
has_and_belongs_to_many :treatments, dependent: :destroy
end
Существует пост, где моя проблема была решенаВот