Rails 3 validates_uniqueness_of with: scope генерирует неверный SQL? - PullRequest
1 голос
/ 26 января 2011

Есть две модели, которые записывают некоторую ежемесячную статистику, и я пытаюсь применить ограничение составного ключа в модели, используя:

validates_uniqueness_of :entity_id, :scope => [:year, :month]

При попытке запустить метод .valid? для записи я постоянно получаю сообщение об ошибке, так как, по-видимому, ActiveRecord генерирует неправильный SQL.

SQLite3::SQLException: near "FROM": syntax error: SELECT      FROM       "table"  WHERE     ("table"."entity_id" = 1) AND ("table"."year" = 2007) AND ("table"."month" = 6) LIMIT 1

Обратите внимание, что Rails не добавляет * в операторе select, поэтому SQLite правильно выдает ошибку.

Есть идеи, если я здесь что-то не так сделал?

1 Ответ

2 голосов
/ 13 августа 2011

Попробуйте это

validates :entity_id, :uniqueness => {:scope => [:year, :month]}

Вы, вероятно, хотите

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