无法删除嵌套属性子记录

时间:2017-03-23 09:02:11

标签: ruby-on-rails activerecord

我无法删除嵌套属性子记录。 Article_series的文章就是模型。 这是代码。

模型

class Article < ApplicationRecord
  has_many :articles_article_series
  has_many :article_series, through: :articles_article_series

  accepts_nested_attributes_for :articles_article_series, allow_destroy: true, reject_if: proc { |attributes| attributes['article_id'].blank? && attributes['series_id'].blank? && attributes['num'].blank? }

控制器

def update
    @article = Article.find(params[:article][:id])
    # article_series delete
    @article.articles_article_series.each do |series|
      series.mark_for_destruction
    end
    @article.save

有没有人告诉我为什么&amp;如何?

2 个答案:

答案 0 :(得分:0)

我相信你可能正在寻找 has_many :articles_article_series, dependent: :destroy

答案 1 :(得分:0)

看起来只有阵列可以工作&#39; mark_for_destruction&#39;。

@article.articles_article_series.to_a.first.mark_for_destruction

之前,我确实喜欢下面的内容。很难找到解决方法。

@article.articles_article_series.first.mark_for_destruction

感谢所有贡献:)

相关问题