ruby-on-rails - 如何设置 Rails 验证列 hstore 键的唯一性?

标签 ruby-on-rails validation activerecord rails-postgresql hstore

我有一个表 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/

相关文章:

ruby-on-rails - 当原始值为空字符串时,防止 "attr_encrypted"和 "blind_index"创建加密字段

asp.net-mvc - 在 MVC 3 中禁用客户端验证 "cancel"提交按钮

ruby-on-rails - Active Record 有默认的英文翻译文件吗?

ruby-on-rails - 从 Rails 3 迁移到 Rails 4 导致自动 ActiveRecord 缓存丢失

ruby-on-rails - Rails form_with 更改提交文本

ruby-on-rails - Rails 记录神秘地卡住,静静地丢弃更新

java - Primefaces - 不显示必填字段的消息,仅突出显示边框

javascript - 在下拉选择和验证时显示文本框

sql - 通过关联查询arel

ruby-on-rails - Rails中的意外 session 劫持4.2.4(Devise/Warden),Phusion乘客5.0.24