Rails:对一列具有约束的多列部分索引

时间:2013-10-13 10:54:46

标签: ruby-on-rails

我想创建以下模型:

  create_table "item_groups", force: true do |t|
    t.string   "name",                         null: false
    t.integer  "locale_id",                    null: false
    t.boolean  "translated",   default: false, null: false
  end

如何添加仅对translate = true(Postgres)进行索引的多列索引。我猜它看起来有点像这样:

add_index "item_groups", ["translated", "locale_id"], name: "item_groups_translated_locale_id", where: "translated = true", using: :btree

更新

我正在使用Rails 4.上面的语法是否正确?

更新2

我将语法更改为

add_index "item_groups", ["translated", "locale_id"], name: "item_groups_translated_locale_id", where: "(translated IS TRUE)", using: :btree

有关Edgars Jekabsons在https://coderwall.com/p/9hxejg

下面的回答的更多信息

1 个答案:

答案 0 :(得分:2)

我理解你的痛苦,香草AR版本3.2仍然不支持。我将pg_power gem用于允许这样做的几个项目。我强烈建议你查看一下: https://github.com/TMXCredit/pg_power

但你应该可以在开箱即用的Rails 4中完成它。