Ich habe Modelle für Organisation und Package_ip.Rails - Polymorphic Associations mit hat viele Beziehung - Indexwerte
Die Verbände sind:
Organisation
has_many :ips, as: :ipable, class_name: Package::Ip
accepts_nested_attributes_for :ips, reject_if: :all_blank, allow_destroy: true
Paket :: Ip
belongs_to :ipable, :polymorphic => true, optional: true, inverse_of: :ip
Die Package_ips Tabelle hat:
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
Mein Ziel ist es für Organisationen cr eate viele Instanzen von package_ip.
Ich habe ein Problem jedoch mit der Art, wie der Index funktioniert. Wenn ich eine zweite Instanz von package_ip erstellen möchte, erhalte ich einen Fehler, der besagt, dass die Indexwerte nicht länger eindeutig sind.
Bin ich in Ordnung, die eindeutige Einschränkung aus meinem Index zu entfernen? Mir ist klar, dass die ipable_ip die organisation.id sein wird und der ipable_type die Elternklasse (Organisation) sein wird. Ich verstehe nicht, warum das einzigartig sein muss. Aber vielleicht habe ich etwas an polymorphen Assoziationen und der Abhängigkeit vom Index verpasst.
Ich bin mir nicht sicher, ob ich verstehe, was Sie mit Ihrem Beispiel meinen. Ich möchte Organization.ips testen und ich möchte, dass ein Array von IP-Instanzen zurückgegeben wird, die in dieser Organisation erstellt wurden. – Mel
Aktualisiert mit einigen Beispielen, worauf zu achten ist. – EnabrenTane