ja_resource icon indicating copy to clipboard operation
ja_resource copied to clipboard

Removing associations when null

Open lxcodes opened this issue 7 years ago • 1 comments

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

lxcodes avatar Aug 23 '17 18:08 lxcodes

@lxcodes thanks for filing this. I will take a look at this in the coming days, as I will be working on something similar.

psteininger avatar Jan 22 '20 20:01 psteininger