Skip to content

Removing associations when null #66

@lxcodes

Description

@lxcodes

This may be some what related to #45, but currently it looks like setting parent_id works for both create and update but permitted_attributes isn't getting nil attributes in order to remove them from what I can see. I can remove an association if I directly pass in parent_id => nil in attributes though.

Wondering if this was the intended way to update a resource to remove an association:
PATCH [http://localhost:4000/api/classifications/3]

{
	"data":{
		"id":"3",
		"attributes":{
			"name":"Top Level Classification"
		},
		"relationships":{
			"parent":{
				"data": null
			}
		},
		"type":"classifications"
	}
}

Phoenix Params:

Parameters: %{"data" => %{"attributes" => %{"name" => "Top Level Classification"}, "id" => "3", "relationships" => %{"parent" => %{"data" => nil}}, "type" => "classifications"}, "id" => "3"}

JaResource attrs passed into permitted_attributes:

Before Update Attrs: %{"name" => "Top Level Classification", "type" => "classifications"}

Should there be a "parent_id" => nil there?

Schema:

  schema "classifications" do
    field :name, :string

    belongs_to :parent, Classification, on_replace: :update
    has_many :children, Classification, foreign_key: :parent_id, on_delete: :delete_all

    timestamps()
  end

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions