我有两个模型Board
和Category
(使用祖先宝石的树结构)和has_many / belongs_to关系。
当我创建新的Board实例时,我自动想要为它创建根类别。我用Board after_save回调来做。
after_create do
categories.create(name: "Main Category", description: nil)
end
在我的另一个问题中,我得到了建议:
在外部模型/类上使用回调不是好习惯。 类别在董事会之外,因此董事会不应该调用类别 这是一个私人空间的回调。相反,更好 方法是将根类别添加到BoardsController的板中 #创建
但另一方面,我听说过脂肪模型/皮肤控制器原理。 那么在这种情况下,逻辑的良好实践是什么?
答案 0 :(得分:0)
您可以使用observers。
Observer classes respond to life cycle callbacks to implement trigger-like behavior outside the original class. This is a great way to reduce the clutter that normally comes when the model class is burdened with functionality that doesn't pertain to the core responsibility of the class