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
コントローラーとメソッドを渡している。