Rails 4 aktualisiert verschachtelte Attribute nicht über JSON

Ich habe verwandte Fragen durchforstet und habe immer noch ein Problem beim Aktualisieren von verschachtelten Attributen in Rails 4 über JSON, die von meinem AngularJS-Frontend zurückgegeben wurden.

Frage: Der folgende Code beschreibt, wie JSON in meiner Rails4-App von AngularJS an das Kandidatenmodell übergeben wurde. Das Kandidatenmodell enthält viele Works, und ich versuche, das Works-Modell über das Kandidatenmodell zu aktualisieren. Aus irgendeinem Grund kann das Works-Modell nicht aktualisiert werden, und ich hoffe, dass jemand darauf hinweisen kann, was mir fehlt. Danke für Ihre Hilfe.

Hier ist der Json im AngularJS-Frontend für den Kandidaten:

{"id"=>"13", "nickname"=>"New Candidate", "works_attributes"=>[
{"title"=>"Financial Analyst", "description"=>"I did things"},
{"title"=>"Accountant", "description"=>"I did more things"}]}

Rails übersetzt dann diesen JSON in den folgenden Code, indem der Kandidatenkopf hinzugefügt wird, schließt jedoch die verschachtelten Attribute unter dem Kandidatenkopf und nicht einkann die works_attributes nicht über das Kandidatenmodell aktualisieren:

{"id"=>"13", "nickname"=>"New Candidate", "works_attributes"=>[
{"title"=>"Financial Analyst", "description"=>"I did things"},
{"title"=>"Accountant", "description"=>"I did more things"}],
"candidate"=>{"id"=>"13", "nickname"=>"New Candidate"}}

Die Candidate_controller.rb enthält ein einfaches Update:

class CandidatesController < ApplicationController

    before_filter :authenticate_user!

  respond_to :json

  def update
    respond_with Candidate.update(params[:id], candidate_params)
  end

private

  def candidate_params
    params.require(:candidate).permit(:nickname,
      works_attributes: [:id, :title, :description])
  end

end

Das Modell candidate.rb enthält den folgenden Code, der die Beziehung has_many zum Arbeitsmodell definiert:

class Candidate < ActiveRecord::Base

  ## Model Relationships
  belongs_to :users
  has_many :works, :dependent => :destroy  

  ## Nested model attributes
  accepts_nested_attributes_for :works, allow_destroy: true

  ## Validations
  validates_presence_of :nickname
  validates_uniqueness_of :user_id

end

Und schließlich definiert das works.rb-Modell die andere Seite der has_many-Beziehung:

class Work < ActiveRecord::Base
  belongs_to :candidate
end

Ich freue mich über jede Hilfe, die Sie leisten können, da ich mir sicher bin, dass mir etwas ziemlich Einfaches fehlt.

Vielen Dank!

Antworten auf die Frage(3)

Ihre Antwort auf die Frage