hier ist also meine Frage: Ich habe zwei Schemata: Tabelle und BestellenEinsetzen ID des Kindes in das übergeordnete Modell Elixir/Phoenix
schema "tables" do
field :table_number, :string
field :current_order, :integer
has_many :orders, Pos1.Order
schema "orders" do
field :number_of_customers, :integer
field :completed, :boolean, default: false
belongs_to :table, Pos1.Table
Wenn ich einen neuen Auftrag erstellen, Controller nur die changeset Einsätze und leiten zu Show.
def create(conn, %{"order" => order_params}) do
changeset = conn.assigns[:table]
|> build_assoc(:orders)
|> Order.changeset(order_params)
case Repo.insert(changeset) do
{:ok, _order} ->
conn
|> put_flash(:info, "Order created successfully.")
|> redirect(to: table_order_path(conn, :show, conn.assigns[:table], _order))
{:error, changeset} ->
render(conn, "new.html", changeset: changeset)
end
end
Jedoch ist es möglich, die ID der erzeugten, um in die übergeordneten (Tabelle) in die current_order Feld einfügen?
Darüber hinaus, wenn die order.completed zu "True" -Wert ändert, wie kann ich die ID aus current_order (in der Tabelle) entfernen?
Grundsätzlich arbeite ich an der Funktionalität, dass, wenn die Tabelle current_order hat - es onclick zeigen wird. Wenn nicht, wird auf eine Seite umgeleitet, um eine Reihenfolge zu erstellen. Und eine Bestellung wird erstellt, current_order in der Tabelle sollte zugewiesen werden.
versuchen Sie das - https://github.com/elixir-lang/ecto/issues/1114 – coderVishal
OFF-THEMA: Ich empfehle auch, Elixir Style Guide auf Ihren Code anzuwenden: https://github.com/niftyn8/elixir_style_guide Es erleichtert das Lesen für andere Menschen. Es gibt sogar ein Tool, das es für Sie überprüft und alle Probleme meldet: https://github.com/rrrene/credo Sie können Ihre Frage bearbeiten und den Code richtig formatieren, falls andere Leute ihn lesen :) – tkowal
@tkowal thanks for der Link! Ich werde es überprüfen – Ilya