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! ** **
Je souhaite activer la boîte de sélection dynamique suivante en utilisant l'ascendance ** même lors de l'édition **.
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)
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é.
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)
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