Rails 4 не обновляет вложенные атрибуты через JSON
Мы изучили связанные вопросы и до сих пор не можем обновить вложенные атрибуты в рельсах с 4 по JSON, возвращенные из моего интерфейса AngularJS.
Вопрос: Приведенный ниже код описывает JSON, переданный из AngularJS в модель Candidate в моем приложении Rails4. У модели-кандидата много работ, и яЯ пытаюсь обновить модель Works с помощью модели Candidate. По какой-то причине модель Works не обновляется, и яЯ надеюсь, что кто-то может указать, что ям отсутствует. Спасибо за вашу помощь.
Вот's json в AngularJS для кандидата:
{"id"=>"13", "nickname"=>"New Candidate", "works_attributes"=>[
{"title"=>"Financial Analyst", "description"=>"I did things"},
{"title"=>"Accountant", "description"=>"I did more things"}]}
Затем Rails преобразует этот JSON в следующий, добавляя заголовок кандидата, но не включает вложенные атрибуты в заголовок кандидата ине удается обновить works_attributes через модель кандидата:
{"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"}}
Андидат_controller.rb содержит простое обновление:
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
Модель Кандидат.рб включает в себя следующий код, определяющий отношение has_many с моделью работ:
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
И наконец, модель works.rb определяет другую сторону отношения has_many:
class Work < ActiveRecord::Base
belongs_to :candidate
end
Я ценю любую помощь, которую вы можете оказать, когда яя уверен, что яЯ упускаю что-то довольно простое.
Спасибо!