[RUBY] [Rails] Was ich aus einem kleinen Stolperstein bei der Verwendung von Vorfahren gelernt habe

Einführung

Zur Erinnerung, ich wollte eine "Spalte mit einer Hierarchie" implementieren, als ich eine Mode-EC-Site durch persönliche Produktion erstellte, und ich lernte aus einem kleinen Stolperstein, wenn ich ** Abstammung ** verwendete, die genau das realisiert. Ich werde es verlassen.

** Außerdem ist dieser Artikel kein Verfahrenshandbuch, sondern eine Einführung in die Fehler, die Anfänger machen! ** ** **

Was Sie erreichen wollen

Ich möchte das folgende dynamische Auswahlfeld mit Abstammung ** auch beim Bearbeiten ** aktivieren.

Image from Gyazo

Annahme

Es wird davon ausgegangen, dass der Controller die Aktion zum Durchsuchen der untergeordneten Hierarchie wie unten gezeigt definiert. Ajax definiert auch search_child fest.

(controllers/items_controller.rb)

(Kürzung)

  def edit
    child_category = @item.category

    @category_parent_ary = []
    Category.where(ancestry: nil).each do |parent|
      @category_parent_ary << parent
    end

    @category_children_ary = []
    Category.where(ancestry: child_category.ancestry).each do |children|
      @category_children_ary << children
    end
  end

  def search_child
    respond_to do |format|
      format.html
      format.json do
        @children = Category.find(params[:parent_id]).children
      end
    end
  end

(Kürzung)

end

(Kürzung)

  $("#parent-form").on("change", function() {
    var parentValue = document.getElementById("parent-form").value;
    if (parentValue != "---") {
      $('#category__box--children').remove();
      $.ajax({
        url     : 'search_child',
        type    : 'GET',
        data    : { parent_id: parentValue },
        dataType: 'json'
      })

(Kürzung)

Sucht beim Bearbeiten nicht! ??

Image from Gyazo

Ich habe es implementiert und neu registriert, und ich dachte, dass es kein Problem geben würde, also habe ich es eingefroren.

Lösung

Es ist sehr einfach, ich habe gerade das Routing hinzugefügt.

(config/routes.rb)
Rails.application.routes.draw do

(Kürzung)

  resources :shops, only: [:new, :create, :show, :edit, :update, :destroy] do
    resources :items, only: [:new, :create, :edit, :update, :destroy] do
      collection do
        get "search_child", defaults: { format: "json" }
      end
     #####↓ Hier hinzufügen ↓ #####
      member do
        get "search_child", defaults: { format: "json" }
      end
    #####↑ Hier hinzufügen ↑ #####
    end
(Kürzung)

Lektion

Wenn der Implementierungsbereich einer Funktion ansteigt, neige ich dazu, meine Füße hochzuschaufeln, und ich habe mich nur auf den Inhalt des Codes konzentriert, den ich für diesen Fehler geschrieben habe, und ich habe einige Zeit damit verbracht. ..

Ich bedauere, dass es wichtig ist, den Codefluss zu verstehen, bis er wieder funktioniert, und die Zweifel zu betrachten!

Recommended Posts

[Rails] Was ich aus einem kleinen Stolperstein bei der Verwendung von Vorfahren gelernt habe
Was ich aus dem Studium von Rails gelernt habe
Was ich beim Erstellen eines Servers in Java gelernt habe
[Anmerkung] Was ich in einem halben Jahr von unerfahrenen (Java) gelernt habe
[Anmerkung] Was ich in einem halben Jahr von unerfahrenen (Java) gelernt habe (1)
[Anmerkung] Was ich in einem halben Jahr von unerfahrenen (Java) gelernt habe (3)
Was ich aus der Java-Geldberechnung gelernt habe
Was mir bei der Verwendung der Schnittstelle einer Funktion mit Standardargumenten in Kotlin aus Java nicht gefällt
[Persönliches Memo] Ich habe etwas über Modifikatoren gelernt
[Rails] Ich habe eine Entwurfsfunktion mit enum erstellt
Was ich gelernt habe
Ich möchte ein kleines Symbol in Rails verwenden
Was ich gelernt habe ② ~ Mock ~
Was ich gelernt habe ~ ~ DJUnit ~
[Ruby / Rails] Was tun, wenn NoMethodError angezeigt wird, wenn eine destruktive Methode wie Filter verwendet wird?
Wovon ich süchtig war, als ich rspec auf Schienen benutzte
Ich bin von Rails gekommen und wusste nicht, was [attr_accessor] ist
Anfänger Ruby on Rails Was ich gelernt habe, wird zusammengefasst
[Rails] Implementierung einer mehrschichtigen Kategoriefunktion unter Verwendung der Abstammung "Ich habe versucht, ein Fenster mit Bootstrap 3 zu erstellen"
Eine Notiz von dem, worauf ich gestoßen bin und was ich beim Aufholen von Laravel von Rails bemerkt habe
Fehler bei der Verwendung von Schienen Capybara
Detaillierte Tipps zur Verwendung von Rails
Was ich über Kotlin gelernt habe
Über das, was ich beim Erstellen einer CLJ-Datei mit Clojure getan habe
Ich erhalte einen Ruby-Versionsfehler, wenn ich versuche, Rails zu starten.
Wovon ich süchtig war, als ich die Google-Authentifizierung mit Rails implementierte
Ich habe versucht, eine einfache Anwendung mit Dockder + Rails Scaffold zu erstellen
Was ich aus Java gelernt habe, funktioniert mit Visual Studio Code
Woran ich dachte, als ich anfing, von Java nach Kotlin zu migrieren