का उपयोग कर एक अपडेट में एसोसिएशन को अपडेट और सम्मिलित करने के लिए मैं एक एकल परिवर्तन लिखने की कोशिश कर रहा हूं जो एक मॉडल को अपडेट करेगा और एक एसोसिएशन डालेगा। मैं कैसे put_assoc/4
Ecto: put_assoc
order = order
|> Proj.Order.changeset(%{state: "error", error_count: order.error_count + 1})
|> Ecto.Changeset.put_assoc(
:order_errors,
[Proj.OrderError.changeset(%Proj.OrderError{}, %{reason: "not_found"})])
|> Proj.Repo.update!
उपयोग करने के लिए यह निम्न त्रुटि बाहर प्रिंट पर उदाहरण नहीं मिल सकता है:
** (Ecto.InvalidChangesetError) could not perform update because changeset is invalid.
* Changeset changes
%{order_errors: [%Ecto.Changeset{action: :insert, changes: %{id: nil, inserted_at: nil, order_id: nil, reason: "not_found", updated_at: nil}, constraints: [], errors: [order_id: "can't be blank"], filters: %{}, model: %Proj.OrderError{__meta__: #Ecto.Schema.Metadata<:built>, id: nil, inserted_at: nil, order: #Ecto.Association.NotLoaded<association :order is not loaded>, order_id: nil, reason: nil, updated_at: nil}, optional: [], opts: [], params: %{"reason" => "not_found"}, prepare: [], repo: nil, required: [:order_id, :reason], types: %{id: :id, inserted_at: Ecto.DateTime, order_id: :id, reason: :string, updated_at: Ecto.DateTime}, valid?: false, validations: []}], state: "error"}
* Changeset params
%{"error_count" => 1, "state" => "error"}
* Changeset errors
[]
किसी भी उदाहरण मैं put_assoc/4
के लिए देख सकते हैं? मैं कैसे ढूंढ सकता हूं कि परिवर्तन क्यों अमान्य है?
इस तरह से काम करने का लक्ष्य यह है कि मुझे आशा है कि नया order
order_errors
प्रीलोड हो जाएगा।