Ember.js/Rails和协会:如何向Rails提交记录及其关联?

PJC*_*PJC 9 ruby-on-rails ruby-on-rails-3 ember.js ember-data

假设您有两个带关联的Rails模型:

class Foo < ActiveRecord::Base
  attr_accessible :name

  belongs_to :moo
end

class Moo < ActiveRecord::Base
  attr_accessible :name

  has_many :foos
  accepts_nested_attributes_for :foos
end
Run Code Online (Sandbox Code Playgroud)

感谢ActiveModel :: Serializer,很容易将现有的嵌套对象从Rails发送到Ember.js.但我找不到在Ember中创建这样的嵌套对象的方法,并将它们发送回Rails以实现持久性.我的理解是Ember需要发回类似的东西:

"moo"=> {
   "foos_attributes"=>{"0"=>{"name" => ...}},
   "name" => ...
}
Run Code Online (Sandbox Code Playgroud)

是否有"标准"方法可以做到这一点?我已经看到了关于这个主题的一些"旧"问题,但没有真正的解决方案,而且由于Ember已经发生了如此大的变化,我认为现在可能有一种简单的方法(不更改Rest Adapter本身).

非常感谢,PJ

小智 2

我刚刚修改了参数,然后将它们传递给createupdate_attributes这样的方法:

  line_items = params[:invoice].delete(:line_items) #Ember format
  params[:invoice][:line_items_attributes] = line_items
Run Code Online (Sandbox Code Playgroud)