Bei Referenzierung (von Grund auf neu)ein Modell generieren Selbstspaltenname Fehler
mix phoenix.new sandpit
mix ecto.create
mix phoenix.gen.json Part parts name part_of:references:parts
mix ecto.migrate
und Bearbeiten der Route so
scope "/api", Sandpit do
pipe_through :api
resources "/parts", PartController, except: [:new, :edit]
end
dann den Server ausgeführt wird und zu
http://localhost:4000/api/parts
ich werde Erhalten Sie die Fehler
info] Running Sandpit.Endpoint with Cowboy using http on port 4000
13 Jul 23:11:37 - info: compiled 5 files into 2 files, copied 3 in 744ms
[info] GET /api/parts
[debug] Processing by Sandpit.PartController.index/2
Parameters: %{}
Pipelines: [:api]
[debug] SELECT p0."id", p0."name", p0."part_of_id", p0."inserted_at", p0."updated_at" FROM "parts" AS p0 [] ERROR query=78.0ms
[info] Sent 500 in 140ms
[error] #PID<0.318.0> running Sandpit.Endpoint terminated
Server: localhost:4000 (http)
Request: GET /api/parts
** (exit) an exception was raised:
** (Postgrex.Error) ERROR (undefined_column): column p0.part_of_id does not exist
(ecto) lib/ecto/adapters/sql.ex:185: Ecto.Adapters.SQL.query!/5
ist das ein Fehler mit dem Generator? es scheint Dinge mit _id
benennen zu wollen, entweder scheint es wie eine versteckte "Regel" zu sein oder es konnte nicht in _id hinzugefügt werden. Wenn es _id nicht automatisch hinzufügt, würde ich denken, dass entweder die Generierung fehlschlagen oder die Namen ohne Absturz verwendet werden würden.
Der Versuch, mit
mix phoenix.gen.json Thing things name thing_of_id:references:things
und Migration verursacht keine Fehler
oder etwas anderes passiert?
Sieht aus wie ein Bug zu mir. Ich denke, Sie sollten es melden oder auf der Google Groups-Mailingliste posten (aber zuerst prüfen, ob es im Zweig "Master" festgelegt ist). – Dogbert