rails 2.3.8 validates_uniqueness_of с: область не работает - PullRequest
1 голос
/ 28 апреля 2011

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

У меня есть версия и номер файла, и мне нужно проверить уникальность номера файла при обновлении, но только в соответствии с каждой отдельной уникальной версией.

Итак, я попробовал

 validates_uniqueness_of :file_number, :scope => :version, :on => :update

Я неоднократно получаю "Номер файла уже занят"

Не существует специальной логики с номером файла, кроме как вbefore_create, где я добавляю один к количеству элементов для этой версии.

РЕДАКТИРОВАТЬ: Вот SQL, который выполняет сервер.http://pastie.org/private/ysbwtiyouhgqkjsjjbooa Идентификатор здесь - это идентификатор записи, которую я обновляю, а возвращаемая из запроса - другая запись.

Есть идеи?

РЕДАКТИРОВАТЬ - Я получил его!РЕШЕНИЕ:

Оказывается, что проверка не просматривает выбранный список записей mymodel, который будет определен как

mymodel принадлежит проекту и проекту has_many mymodel

, поэтому сследующий трюк сработал.

validates_uniqueness_of: номер_файла,: scope => [: версия,: project_id],: on =>: обновление

1 Ответ

0 голосов
/ 26 мая 2011

Вставка решения в виде ответа:

Оказывается, проверка не просматривает выбранный список записей mymodel, который будет определен как

mymodel принадлежит проекту и проекту has_many mymodel

так что со следующей настройкой это сработало.

validates_uniqueness_of: file_number,: scope => [: version,: project_id],: on =>: updat

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