[RUBY] [Rails] Ce que j'ai appris d'une petite pierre d'achoppement lors de l'utilisation de l'ascendance

introduction

Pour rappel, j'ai voulu mettre en place une "colonne avec une hiérarchie" lorsque j'ai créé un site EC mode par production personnelle, et j'ai appris d'une petite pierre d'achoppement lors de l'utilisation de ** ascendance ** qui réalise exactement cela. Je vais le laisser.

** De plus, cet article n'est pas un manuel de procédures, mais une introduction aux erreurs que les débutants ont tendance à faire! ** **

Ce que vous voulez réaliser

Je souhaite activer la boîte de sélection dynamique suivante en utilisant l'ascendance ** même lors de l'édition **.

Image from Gyazo

supposition

On suppose que le contrôleur définit l'action de recherche dans la hiérarchie enfant comme indiqué ci-dessous. ajax définit également fermement search_child.

(controllers/items_controller.rb)

(réduction)

  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

(réduction)

end

(réduction)

  $("#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'
      })

(réduction)

Ne recherche pas lors de l'édition! ??

Image from Gyazo

Je l'ai implémenté et récemment enregistré, et je pensais qu'il n'y aurait pas de problème, alors je l'ai gelé.

Solution

C'est très simple, je viens d'ajouter le routage.

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

(réduction)

  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
     #####↓ Ajouter ici ↓ #####
      member do
        get "search_child", defaults: { format: "json" }
      end
    #####↑ Ajouter ici ↑ #####
    end
(réduction)

Leçon

Lorsque la plage d'implémentation d'une fonction gonfle, j'ai tendance à prendre mes pieds, et je me suis juste concentré sur le contenu du code que j'ai écrit pour cette erreur, et j'ai passé du temps. ..

Je regrette qu'il soit important de comprendre le flux du code jusqu'à ce qu'il fonctionne à nouveau et de regarder les doutes!

Recommended Posts

[Rails] Ce que j'ai appris d'une petite pierre d'achoppement lors de l'utilisation de l'ascendance
Ce que j'ai appris en étudiant les rails
Ce que j'ai appris lors de la création d'un serveur en Java
[Note] Ce que j'ai appris en six mois grâce à des inexpérimentés (Java)
[Note] Ce que j'ai appris en six mois grâce à des inexpérimentés (Java) (1)
[Note] Ce que j'ai appris en six mois grâce à des inexpérimentés (Java) (3)
Ce que j'ai appris du calcul monétaire Java
Ce que je n'aime pas lors de l'utilisation de l'interface d'une fonction avec des arguments par défaut dans Kotlin depuis Java
[Note personnelle] J'ai appris à la légère sur les modificateurs
[Rails] J'ai créé une fonction de brouillon en utilisant enum
Ce que j'ai appris
Je veux utiliser une petite icône dans Rails
Ce que j'ai appris ② ~ Mock ~
Ce que j'ai appris ① ~ DJUnit ~
[Ruby / Rails] Que faire lorsque NoMethodError apparaît lors de l'utilisation d'une méthode destructive comme le filtre!
Ce à quoi j'étais accro en utilisant rspec sur des rails
Je suis entré depuis Rails et je ne savais pas ce qu'était [attr_accessor]
Débutant Ruby on Rails Ce que j'ai appris est résumé
[Rails] Implémentation de la fonction de catégorie multicouche en utilisant l'ascendance "J'ai essayé de créer une fenêtre avec Bootstrap 3"
Une note de ce sur quoi j'ai trébuché et remarqué en rattrapant Laravel de Rails
Erreur lors de l'utilisation des rails capybara
Conseils détaillés lors de l'utilisation de Rails
Ce que j'ai appris sur Kotlin
À propos de ce que j'ai fait lors de la création d'un fichier .clj avec Clojure
J'obtiens une erreur de version de Ruby lorsque j'essaye de démarrer Rails.
Ce à quoi j'étais accro lors de la mise en œuvre de l'authentification Google avec des rails
J'ai essayé de créer une application simple en utilisant Dockder + Rails Scaffold
Ce que j'ai appris en travaillant Java avec Visual Studio Code
Ce à quoi j'ai pensé lorsque j'ai commencé à migrer de Java vers Kotlin