Die Beispiele können tun Sie Array hinzufügen möchten, während Tabelle erstellen:
class AddSubjectsToBook < ActiveRecord::Migration
def change
add_column :books, :subjects, :text, array:true, default: []
end
end
Wir haben es jetzt überprüfen Wenn Sie array: true
verwenden, benötigen Sie Postgres oder eine andere Datenbank, die zu einem Array-Typ in der Lage ist. Verwenden Sie für MySQL die generische Serialisierung, mit der Sie beliebige Typen in einer Spalte speichern können.
create_table :users do |t|
t.text :addresses, default: [].to_yaml
...
end
class User < ActiveRecord::Migration
serialize :addresses, Array
end
u = User.new
u.update_attributes addresses: ["123 Evergreen", "246 Main"]
Die üblichen Einschränkungen gelten für das Speichern von Arrays in einer Datenbank. Es geht gegen den Strich von relationalen Datenbanken, um dies zu tun und wird es schwierig, langsam oder unmöglich machen, Dinge wie die Suche nach einem einzelnen Gegenstand zu tun. Es kann jedoch eine gute Lösung für die grundlegende Speicherung sein, bis Sie diese Dinge tun müssen.
mögliche Duplikate von [Speichern von Arrays in der Datenbank: JSON vs. serialisiertes Array] (http://stackoverflow.com/questions/21312278/storing-arrays-in-database-json-vs-serialized-array) –
Dies sollte wahrscheinlich ein http: //apidock.com/rails/ActiveRecord/Associations/ClassMethods/has_many ... –