我有一个表 channels
,其中有一个 hstore 列 credentials
。每个 channel 的凭据可能不同,但我希望它们在填充时是唯一的。我设置了一些像这样的 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 方式。在 hstore 键 'auth_token' 和 'seller_id' 上使用验证唯一性的语法是什么(如果有的话)?
最佳答案
检查这个,它可能有帮助:https://gist.github.com/rf-/2322543
注意他使用了“sqlite3”。
关于ruby-on-rails - 如何设置 Rails 验证列 hstore 键的唯一性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17955084/