【问题标题】:Can't save model during callback after_save回调 after_save 期间无法保存模型
【发布时间】:2015-09-07 13:26:27
【问题描述】:

我有两个模型: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

但是在回调期间组是空的。显然,我做错了。 我怎样才能正确地做到这一点?谢谢。

【问题讨论】:

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


    【解决方案1】:

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

    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
    

    【讨论】:

      猜你喜欢
      • 2015-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-13
      • 2021-01-25
      • 1970-01-01
      • 2020-05-18
      • 2013-12-13
      相关资源
      最近更新 更多