Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何使用Ember.js和Rails在一个请求中创建模型及其关联?_Ruby On Rails_Ember.js - Fatal编程技术网

Ruby on rails 如何使用Ember.js和Rails在一个请求中创建模型及其关联?

Ruby on rails 如何使用Ember.js和Rails在一个请求中创建模型及其关联?,ruby-on-rails,ember.js,Ruby On Rails,Ember.js,在ember.js/ember-data.js中,有没有一种方法可以让商店发布到rails,以便它发送信息来创建模型及其关联?让我提供一些背景 假设我有3个rails模型: class Post < ActiveRecord::Base has_many :categorizations has_many :categories, :through => :categorizations attr_accessible :categories_attributes

在ember.js/ember-data.js中,有没有一种方法可以让商店发布到rails,以便它发送信息来创建模型及其关联?让我提供一些背景

假设我有3个rails模型:

class Post < ActiveRecord::Base
  has_many :categorizations
  has_many :categories, :through => :categorizations

  attr_accessible :categories_attributes

  accepts_nested_attributes_for :categories
end

class Categories < ActiveRecord::Base
  has_many :categorizations
  has_many :posts, :through => :categorizations
end

class Categorizations < ActiveRecord::Base
  belongs_to :post
  belongs_to :categories
end
我正试图使它在调用App.store.commit()时,使用类似以下内容发布到/POSTs:

{
  :post => {
    :title => "some title",
    :content => "blah blah,
    :categorizations => [ # or :categorizations_attributes would be nice
      {
        :category_id => 1
      } 
    ]
  }
}

有没有一种方法可以实现这一点,而无需将ember POST发送到分类\u控制器来创建分类?

您应该看看
重新适应程序
使用其
批量提交
选项的功能。
RESTAdapter
旨在与Rails一起工作,但您可能需要在Rails端进行一些配置,以完全支持它。请参见

看起来
bulkCommit
选项仅在
createRecords
updateRecords
deleteRecords
方法中使用。在上面的例子中,我应该如何使用
createRecords
?您是否建议编写自己的适配器?您是否建议这样做第29-33行是我在适当时将键更改为单数的地方。我必须这样做,因为当应用
bulkCommit
选项时,它在向服务器发布时将
:post
键复数化。
createRecords
实际上是默认情况下的名称。如果您没有启用
bulkCommit
createRecords
只需在每条记录上循环并调用
createRecord
。我觉得这与我过去的做法非常相似,但仍然没有成功。@derrick请在解决此问题后将解决方案发回给您。
{
  :post => {
    :title => "some title",
    :content => "blah blah,
    :categorizations => [ # or :categorizations_attributes would be nice
      {
        :category_id => 1
      } 
    ]
  }
}