如何设置rails验证列hstore键的唯一性



我有一个表channels,其中有一个hstore列credentials。每个通道的凭据可能不同,但我希望它们在填充时是唯一的。我设置了一些postgres索引,如下所示:

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'))"

这在使用ActiveRecord::RecordNotUnique的@channel.save过程中正确地引发了一个硬错误,但我希望使用熟悉的rails方式来显示表单错误。在存储密钥"auth_token"和"seller_id"上使用valids唯一性的语法是什么(如果有的话)?

检查一下,它可能会有所帮助:https://gist.github.com/rf-/2322543

请注意,他使用了"sqlite3"。

最新更新