在回调after_save期间无法保存模型

时间:2015-09-07 13:26:27

标签: ruby-on-rails callback ruby-on-rails-3.2

我有两个模型:Category和Subcategory,相关如下:

class Category
  has_many :subcategories
  has_many :groups
end

class Subcategory
  belongs_to :category
  has_many :groups
end 

子类别组必须从类别继承。

我是这样做的:

class Category
  has_many :subcategories
  has_many :groups
  after_save :pass_to_subcategories

  private
  def pass_to_subcategories
    subcategories.map do |sc| 
      sc.groups = groups
    end
  end

end

但在回调组中是空的。显然,我做错了。 我怎么能正确地做到这一点?感谢。

1 个答案:

答案 0 :(得分:0)

您可以告诉子类别在类别中查找:

class Subcategory
  belongs_to :category
  has_many :groups, through: :category
end 

至于你的代码,我认为你只需要在子类别上调用save:

def pass_to_subcategories
  subcategories.map do |sc| 
   sc.groups = groups
   sc.save
  end
end