Railsで開発時と運用時でインクルードするjavascriptを変えたい。
そもそもなぜこのような事をしたいのかは、webアプリをjavascriptで書いているが、サーバーへのアクセスが必要なもときがあり、それにはurlを指定する必要がある。だけど、開発環境時ではローカルにあるサーバーにアクセスさせたいし、運用時には正式なサーバー
にアクセスさせたい。
これまでは、運用環境にデプロイするたびに手動でurlを変更していた。
この作業はいずれミスをするだろうし、何しろ面倒くさい。なので、urlなど環境ごとに可変の情報を集めておき、開発時にはインクルードし、運用時にはインクルードしないようにできないか。と考えた。
google先生に聞いたみたところ、stackoverflowでこれを見つけた。
まさしくこれがやりたかったこと。
application.html.erb
<%load_javascript %>
application_helper.rb
module ApplicationHelper def load_javascript if Rails.env.production? javascript_include_tag 'application' else javascript_include_tag 'application', 'devVars' end end end
devVars.jsに開発用の情報を記載する。
注意事項は、app/assets/javascriptsにdevVar.jsを置くとapplicationと一緒にインクルードされてしまうので、別の場所に置く必要がある。
vendor/assets/javascriptsに置いてみたところうまくいった。
同じ事で悩んでいる人はいないのだろうか。
railsでこれがベストプラクティクスか知りたい。