2017-03-23 3 views
0

Ich kann verschachtelte Attribute untergeordneten Datensatz nicht löschen. Artikel mit Article_series ist das Modell. Hier ist der Code.kann verschachtelte Attribute untergeordneten Datensatz nicht löschen

Modell

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? } 

-Controller

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 

Hat mir jemand sagen, warum & wie?

+0

Sie wirklich Datensatz löschen wollen oder wollen einfach nur „mark_for_destruction“ – chaitanya

+0

Ich möchte wirklich den Datensatz löschen. Aber es scheint nicht funktioniert nach '@ article.save' –

Antwort

0

Ich glaube, Sie gesucht werden können has_many :articles_article_series, dependent: :destroy

+0

Danke, aber leider hat es nicht funktioniert. Ich möchte nur Kinderakte löschen, nicht Eltern. –

+0

Können Sie einige zusätzliche Informationen bereitstellen, ein wenig mehr Spezifität der Aufgabe, die Sie erreichen möchten? Ich würde gerne weiter mit mehr Infos helfen. – Wasik

+0

Großartig! Aber irgendwie habe ich endlich herausgefunden, wie ich es beheben kann. Ich werde meine Antwort aktualisieren. –

0

Es sieht aus wie nur 'mark_for_destruction' Array funktioniert.

@article.articles_article_series.to_a.first.mark_for_destruction 

Vor, ich mochte unten. Es ist so schwer, den Weg zu finden, um es zu reparieren.

@article.articles_article_series.first.mark_for_destruction 

Danke für alle dazu beiträgt :)

Verwandte Themen