Странное упорядочение объекта ActiveRecord - PullRequest
0 голосов
/ 01 марта 2019

Я пытаюсь получить записи в порядке по :id в представлении.У меня есть записи, упорядоченные по :id в контроллере, например,

@bands = Band.where(available: true).order(:id)

Когда приложение запускается, все выглядит нормально, но по мере обновления записей порядок упорядочения становится сомнительным.Чаще всего недавно отредактированные записи переносятся в самый конец, но не всегда.Этого не должно быть, так как записи упорядочены по :id, который не должен изменяться

Для контекста в представлении есть что-то вроде

<% @bands.each do |b| %>
<%= b.name %>
<% end %>

Также обратите внимание, что в рельсахконсоль, оба они возвращают правильно упорядоченные результаты (что делает эту проблему еще более странной):

ActiveRecord::Base.connection.execute("SELECT * FROM bands WHERE available = 'true' ORDER BY id")

и

Band.where(available: true).order(:id)

Также обратите внимание, что когда я загружаю представление index и наблюдаю за сервером rails, я вижу, что результаты не в правильном порядке.

Я также вижу SQL-запрос, который был выполнен, и он игнорирует часть order, он просто не упоминает порядок в запросе

1 Ответ

0 голосов
/ 01 марта 2019

На самом деле, я не думаю, что это возможно.Но попробуйте это:

@bands = Band.where(available: true).order(:id).to_a
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...