Rails5.1.3でWebアプリケーションの勉強をしながら制作しています。
どうしてもclassの壁を越えて変数を使いたくてグローバル変数を使用しました。
複数のコントローラで同一のグローバル変数の値を変えていますが、上手く読み込んでくれなくて
困っております。
状態は rails s で起動し、最初に読み込んだコントローラのグローバル変数が保持され続けるのです。
別のコントローラでグローバル変数を変更しても変数の値が変わってくれません。
railsを再起動して別のコントローラを読み込むと今度はそのグローバル変数の値が保持され続けます。
原因がわからないのでご教示お願いします。 コードは以下になります。
CacheEighteensController def edit $quarter20 = 10 @customer = Customer.find(params[:id]) @acc_name = @customer.family_name + ' ' + @customer.given_name @nickname = @customer.nickname @eighteen_form = Admin::EighteenForm.new(Eighteen.find(params[:id])) end
BonusEighteensController def edit $quarter20 = 20 @customer = Customer.find(params[:id]) @acc_name = @customer.family_name + ' ' + @customer.given_name @nickname = @customer.nickname @eighteen_form = Admin::EighteenForm.new(Eighteen.find(params[:id])) end
SpecialEighteensController $quarter20 = 30 @customer = Customer.find(params[:id]) @acc_name = @customer.family_name + ' ' + @customer.given_name @nickname = @customer.nickname @eighteen_form = Admin::EighteenForm.new(Eighteen.find(params[:id])) end
EighteensController if $quarter20 == 10 . . . elsif $quarter20 == 20 . . . else . . . end
のように3種類のコントローラのどれかを読み込むと$quarter20の値が変わりeighteensコントローラで
処理を切り換えたいのです。
しかしrailsを再起動して最初に読み込んだコントローラの$quarter20の値を保持し次に読み込んだ
コントローラの$quarter20に変わってくれません。
たとえばrailsを再起動しBonusEighteensControllerを読み込むと$quarter20の値は20になりますが
次にSpecialEighteensControllerを読み込んでも$quarter20の値は30にならず20のままで
eighteensコントローラの$quarter20 == 20 の処理を行ってしまうのです。
単純に使い方が間違っているのかとも思いましたが解決方法がわからないので
どなたか教えていただけないでしょうか?宜しくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/13 02:37