У меня есть модель, из которой я хочу вытащить случайную запись, соответствующую определенным критериям. Например: дайте мне случайную запись из таблицы Thing, где column_name = true.Rails Active Record Query - найти случайную запись, которая соответствует условию
Чтобы получить случайную запись из модели я могу сделать следующее:
Thing.offset(rand(Thing.count)).first
, и я хочу, чтобы объединить, что с запросом:
Thing.where("column_name = ?", true).all
Это не работает:
counter = Thing.where("column_name = ?", true).count
Thing.where("column_name = ?", true).offset(rand(counter)).first
Любые идеи о том, как написать этот запрос, будут очень признательны.
Каков фактический запрос, который вы пытаетесь достичь. У вас на самом деле есть таблица под названием «вещи» с логическим столбцом под названием «column_name». Насколько я понимаю, вы могли изменить эти имена значений при публикации, но поскольку вы не предоставили трассировку стека или какую-либо соответствующую информацию, ее очень сложно обеспечить вы помогаете –
Просто попробовал свой код и адаптирован к моему приложению, он отлично работает ... что за ошибка? –
Вы правы. Я попробовал еще раз, и он работает. Не уверен, что я ошибся в прошлый раз. – diasks2