Мое приложение имеет следующие классы моделей:
class Parent < ActiveRecord::Base
# Setup accessible (or protected) attributes for your model
attr_accessible :child_attributes, :child
has_one :child
accepts_nested_attributes_for :child
#This is to generate a full JSON graph when serializing
def as_json(options = {})
super(options.merge, :include => {:child => {:include => :grandchild } })
end
end
class Child < ActiveRecord::Base
# Setup accessible (or protected) attributes for your model
attr_accessible :grandchild_attributes, :grandchild
belongs_to :parent
has_one :grandchild
accepts_nested_attributes_for :grandchild
end
class Grandchild < ActiveRecord::Base
belongs_to :child
end
В моем контроллере у меня есть метод create
, определенный следующим образом:
def create
@parent = Parent.new(params[:parent])
#Rest ommited for brevity - just respond_with and save code
end
end
Мой запрос отображается в логах как:
Parameters: {"parent"=>{"child"=>{"grandchild"=>{"gc_attr1"=>"value1", "gc_attr2"=>"value2"}}, "p_attr1"=>"value1"}
Это полный график сериализации, полученный от моего клиента приложения для iphone, использующего RestKit.
Я видел другие SO вопросы, такие как здесь , это относится к этому сообщению в блоге.
Моя проблема, однако, заключается в том, что я не знаю, как управлять сериализованным графом со стороны моего клиента с помощью RestKit для создания такого запроса (и таким образом, он работает .. протестировано с отладчиком)
Parameters: {"parent"=>{"child_attributes"=>{"grandchild_attributes"=>{"gc_attr1"=>"value1", "gc_attr2"=>"value2"}}, "p_attr1"=>"value1"}
У кого-нибудь есть идеи, есть ли какая-либо опция, которую я могу передать методу Parent.new или настроить вывод JSON RestKit таким образом, чтобы я мог достичь структуры model_attributes во вложенных объектах JSON?
Спасибо