Help us understand the problem. What is going on with this article?

React.jsとRailsの定数管理

More than 1 year has passed since last update.

JSの定数

  • constants.jsのようなファイルを用意してwindow.config.xxのように生やす
  • スマホのブレイクポイントのようなJS固有の定数系はここに書くようにする(あまり無いと思うけど)

JSで環境毎に異なる値を使いたい

  • Rails Wayに沿っているアプリの場合、JS側で環境毎に違った値を持ちたいということはほぼ無いはず
  • APIサーバーとフロントが完全に分離しているようなアプリの場合はJS側で処理をゴリゴリ書いていくので、 環境によってAPIのアクセス先のURLを変えたい等のニーズが出てくるはず。その場合は定数用のファイルを分ける仕組みが必要になる(ここは今回あまり調べてない)

Railsの定数

  • gemのconfigを使う
    • constants.rbは定数が増えてくると環境毎の条件分岐が面倒
    • 環境毎にymlファイルが分割され、Setttngs.xx.yyでアクセスできて階層が把握しやすい
  • 環境変数を使う
    • 外部サービスのIDやパスワード等、コード管理したくない値は環境変数に設定しておく

JSとRailsの連携

  • Rails主体のアプリの場合はシステム定数はRailsで管理し、JSはRailsの定数が必要な処理をする場合はAjaxリクエストして任せるようにする
  • Railsのparamsの情報等、JS側で共通で持っていると便利で、かつユーザーに知られても問題ない値はgonを使ってwindow.gonに生やしておくと便利
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away