2013-09-12 5 views
0

Я собрал идентификаторы модели студента следующим методомИспользование массива во встроенном запросе SQL в Рубине

ids = Student.all.map{|s| s.id} 

Теперь я хочу использовать вышеуказанные идентификаторы массивов в следующем запросе SQL в моем коде Ruby, следующим образом :

students = repository.adapter.select(%Q{select id, roll_number, major from students where id in (#{ids})}) 

Это выше строка дает синтаксическую ошибку, потому что я не могу использовать идентификаторы как массив в этом запросе SQL. Я новичок в Ruby и Mysql. Так может ли кто-нибудь дать решение для этого?

ответ

0

Вы можете сделать это, как этот

ids = Student.pluck(:id) 
repository.adapter.select("some fields").where(["id IN (?)", ids]) 
+0

Это не работает. Не могли бы вы дать точный синтаксис с небольшим примером? – Joy

+0

Я только что привел пример того, как запускать запрос с массивами в рельсах. Я не уверен, что вы пытаетесь сделать – techvineet

+0

См. Я написал следующее: ids = Student.all.map {| s | s.id}, pluck не работает, но затем я написал следующий оператор, как вы предложили следующим образом: repository.adapter.select (% Q {select id, name from Students where (["id in (?)", # { ids}])}) – Joy