Ich habe gerade einen Postgres json
Typ zu einer Rails/Active Record Tabelle hinzugefügt, mit der ich arbeite. Ich möchte einen Datensatz mit einem Standardwert in Rails Vorrichtungen füllen:Wie kann ich einen Postgres JSON-Wert in ein Rails-Gerät eingeben?
fixture_id:
existing_column: "foobar"
newly_added_column: <%= JSON.dump({:reason => 'foobar'}) %>
Zuvor hatte ich Zeichenfolge JSON auf diese Weise in einer text
Spalte gespeichert. Wenn ich diesen Unit-Test jetzt aber ausfühle:
test "my test" do
sut = fixtures(:fixture_id)
assert_not_nil sut.newly_added_column
end
Der Test schlägt fehl. Da es JSON auf Datenbankebene ist, denke ich nicht, dass es nützlich ist, es in eine Zeichenfolge zu speichern, aber die YAML-Fixtures scheinen ein Objekt nicht als Hash zu halten (wenn ich es ohne JSON.dump
versuche, bekomme ich ActiveRecord::Fixture::FormatError: a YAML error occurred parsing
).
Wohlgemerkt, ich benutze Rails 3, daher denke ich, dass einige der Unterstützung dafür in Rails 4 sein können, aber in Rails 3 funktioniert die Migration zum Hinzufügen eines json
Postgres-Spaltentyps immer noch.