2

我正在构建一个带有 Ember 前端的 Rails 应用程序。我正在努力确保 API 在 Rails/Ember 精神中尽可能简单、普通、RESTful 和传统。

我对如何处理父模型至少需要一个子模型而子模型都需要父模型的情况感到困惑。

这是一个有点做作的例子:

class Meal < ActiveRecord::Base
  has_one :appetizer
  has_one :entree
  has_many :side_dishes
  has_many :desserts

  # ensures there is AT LEAST one appetizer, entree, side dish or dessert
  validate :plate_is_not_empty

  accepts_nested_attributes_for :appetizer, :entree, :side_dishes, :desserts
end

class Appetizer < ActiveRecord::Base
  belongs_to :meal
  validates_presence_of :meal
end

class Entree < ActiveRecord::Base
  belongs_to :meal
  validates_presence_of :meal
end

class SideDish < ActiveRecord::Base
  belongs_to :meal
  validates_presence_of :meal  
end

class Dessert < ActiveRecord::Base
  belongs_to :meal
  validates_presence_of :meal
end

在过去(也就是在 Ember 之前,使用标准的 Rails 应用程序),我的路径总是通过父控制器创建父对象(在这种情况下应该是 MealsController),至少有一个嵌套的子对象。

snack = Meal.create(:name => 'Late night snack', :side_dishes_attributes => {:name => 'Corn Bread'})

然后我可以根据需要随意添加其他孩子,稍后,因为已经创建了父母。

Dessert.create(:name => "Marshmellow Fluff straight from the jar", :meal => snack)

但是使用 Ember 处理这种情况的最佳方法是什么?我假设这只是一个特殊情况,需要使用嵌套属性进行自定义 ajax 调用,这很好。但我想知道这样的情况如何适应 Ember 提倡的新兴 API 标准。(我是其中的忠实粉丝。)

4

0 回答 0