Heroku PostgreSQL меняет sortable_list POST? - PullRequest
1 голос
/ 06 декабря 2011

У меня самая странная проблема с PostgreSQL - кто-нибудь может помочь?

Мое приложение позволяет пользователям создавать объекты, которые затем отображаются на странице. Я следовал учебнику Ryan Bates Railscasts , чтобы сделать их сортируемыми, что прекрасно работает в моей системе.

Так локально, используя этот код:

  def sort
    params[:faqs].each_with_index do |id, index|
      Object.update_all(['position=?', index+1], ['id=?', id])
    end
    render :nothing => true
  end

Я получаю этот вывод по запросу POST:

Запущен POST "/ users / sort_object" для 127.0.0.1 во вторник, 06 декабря 16:43:52 +0100 2011 Обработка ObjectController # сортировать как JS
Параметры: { "Authenticity_token" => "#####################", "_" => "", "faqs" => ["5", "1389", "11", "1350", "147", "849", "932", «1260», «23», «10», «1261»]} AREL (1,8 мс) ОБНОВЛЕНИЕ «SET» объектов position = 1 WHERE (id = '5') AREL (1.2ms) ОБНОВЛЕНИЕ SET объектов position = 2 WHERE (id = '1389') AREL (2.9ms) ОБНОВЛЕНИЕ SET объектов position = 3 WHERE (id = '11 ') AREL (3.3ms) ОБНОВЛЕНИЕ SET объектов position = 4 WHERE (id = '1350') AREL (1.4ms) ОБНОВЛЕНИЕ SET объектов position = 5 WHERE (id = '147') AREL (1.5ms) ОБНОВЛЕНИЕ SET объектов position = 6 WHERE (id = '849') AREL (1.2ms) ОБНОВЛЕНИЕ SET объектов position = 7 WHERE (id = '932') AREL (1,5 мс) ОБНОВЛЕНИЕ SET объектов position = 8 WHERE (id = '1260') AREL (1.5ms) ОБНОВЛЕНИЕ SET объектов position = 9 WHERE (id = '23 ') AREL (2.0ms) ОБНОВЛЕНИЕ SET объектов position = 10 WHERE (id = '10 ') AREL (1.9ms) ОБНОВЛЕНИЕ SET объектов position = 11 WHERE (id = '1261') Визуализированный текстовый шаблон (0,0 мс)

Я проверил это локально с несколькими пользователями, и изменение порядка на одном не мешает другим объектам - как вы можете видеть, БД только вставляет позицию для идентификатора объекта, указанного для этого пользователя.

Однако, когда я смотрю на базу данных, хранящуюся в Heroku, происходит нечто странное. В итоге я получаю пользователей, у которых есть несколько Объектов с позицией = 1, что, по-видимому, вызвано тем, что другие пользователи меняют свое положение.

Может кто-нибудь помочь? Есть ли способ отладить это (у меня нет выделенного сервера на Heroku, поэтому я не могу транслировать логи)? Кто-нибудь знает, что может быть причиной?

Надеюсь, это понятно, кричите, если нет ...

1 Ответ

0 голосов
/ 07 декабря 2011

Это руководство предназначено только для одного пользователя (то есть администратора сайта), использующего функции сортировки. Вам нужно применить другое решение (сохранить порядок сортировки каждого пользователя в сеансе или что-то в этом роде).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...