У меня есть модели для организации и Package_ip.Rails - Полиморфные ассоциации с множеством отношений - значения индекса
Ассоциации являются:
Организация
has_many :ips, as: :ipable, class_name: Package::Ip
accepts_nested_attributes_for :ips, reject_if: :all_blank, allow_destroy: true
Пакет :: Ip
belongs_to :ipable, :polymorphic => true, optional: true, inverse_of: :ip
Таблица Package_ips имеет:
create_table "package_ips", force: :cascade do |t|
t.string "identifier"
t.text "description"
t.text "conditions"
t.integer "ipable_id"
t.string "ipable_type"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "title"
t.string "status"
t.string "classification"
t.index ["ipable_type", "ipable_id"], name: "index_package_ips_on_ipable_type_and_ipable_id", unique: true, using: :btree
end
Моя цель состоит в том, чтобы организации CR достаточно много экземпляров package_ip.
У меня проблема с тем, как работает индекс. Если я хочу создать второй экземпляр package_ip, я получаю сообщение об ошибке, которое говорит, что значения индекса больше не уникальны.
Я в порядке, чтобы удалить уникальное ограничение из моего индекса? Я понимаю, что ipable_ip будет organisation.id, а ipable_type будет родительским классом (организацией). Я не понимаю, почему это должно быть уникальным. Но, возможно, я пропустил что-то о полиморфных ассоциациях и опора на индекс.
Я не уверен, что понимаю, что вы подразумеваете под своим примером. Я хочу проверить Organisation.ips, и я хочу, чтобы это возвращало массив экземпляров ip, созданных в этой организации. – Mel
Обновлено с некоторыми примерами того, что следует соблюдать. – EnabrenTane