2

У меня есть стол channels, с колонкой hstore credentials. Учетные данные для каждого канала могут быть разными, но я хочу, чтобы они были уникальными при заполнении. Я поставил некоторые Postgres индексы, как это:Как установить рельсы проверяет уникальность на столбце hstore key?

execute "CREATE UNIQUE INDEX channels_key_seller_id_values_unique ON channels((credentials -> 'seller_id'))" 
execute "CREATE UNIQUE INDEX channels_key_auth_token_values_unique ON channels((credentials -> 'auth_token'))" 

Это правильно поднимает тяжелую ошибку при @ channel.save с ActiveRecord::RecordNotUnique, однако я хотел бы, привычные рельсы способ отображения ошибок формы. Что (если есть) является синтаксисом использования проверки подлинности уникальности на ключах hstore «auth_token» и «seller_id»?

ответ

0

Проверьте это, он может помочь: https://gist.github.com/rf-/2322543

Обратите внимание, что он использовал 'sqlite3'.

+1

Основные упоминания, включая ActiveModel :: Validations. К сожалению, модуль не поддерживает уникальность. http://api.rubyonrails.org/classes/ActiveModel/Validations.html –