Rails コントローラのメソッドごとに、JavaScriptへ渡す値を変更

  • gon のgemを入れる

ここは他を参照ください

目的 コントローラのメソッドごとに、JavaScriptへ渡す値を変更したい。

JavaScriptの切り分け

  scriptTagLoader(){
    return new Promise(function(resolve){
        
      document.addEventListener('DOMContentLoaded',function(){
     
//ここのgon.paramsへコントローラのメソッドが渡る   
        if(["show", "edit", "index"].includes(window.gon.params["action"])
        && window.gon.params["controller"] === "areas"){
          
          var scriptTag = document.createElement('script');
          scriptTag.src = 'https://maps.googleapis.com/maps/api/js?key=AIzaSyCzdweLM4IMcYqePE_qWBiLkp8c2uLOkDE';
          scriptTag.async = true;
          scriptTag.defer = true;
          
          window.addEventListener('load',function(){
            resolve("GoogleMaps scriptTagを追加しました。"); 
          });
        }
      });
      
    });
  },

コントローラのbefore_action

 before_action :export_controller_and_action_params

これはApplicationControllerで宣言

 def export_controller_and_action_params
    gon.params = {
      controller: params[:controller],
      action: params[:action],
    }
  end

コントローラーとメソッドを渡している。