はじめに
こんにちは、株式会社TOKOSのツキヤです!
今回は、経験者にとっては当たり前ですが、初学者は最初は戸惑う「定数」について解説します!
また、Railsで定数を扱う際のgem “config” の解説もします😎
定数って何?
定数とは?
「定数」とは読んで字のごとく、変わらない(定まった) 数(値) のことです!
例えば、「円周率」は約3.14159という数値で、これは変わることがありません。このような値のことです😎
定数の使い方
このような値を実際のコードで書くと以下のような感じになります!
PI = 3.14159
# 半径10の円の円周
puts 2 * 10 * PI
ポイントしては、全て大文字にすることです。また、変数名を複数単語で表すならそれぞれの単語の間をアンダースコアでつなげます! (ex: CIRCLE_NAME)
変数として用意しておく理由は、他の箇所で使い回せるからですね。
例えば上記の PI は、他の色々な箇所で使いそうですよね。なので予め変数にしておいて使い回せるようにします。
ただ、Railsで同じ定数を色々なファイルで扱うには少々工夫が要ります🙄
そこで、以下で解説する”config”を使っていきます!
gem “config” の使い方
それでは、config の使い方を解説していきます!
まずはGemfileです!
gem "config"
からの $ bundle install でインストール完了です💪
次に、設定ファイルを $ rails g config:install コマンドで生成します!
これで、config/settings.yml, config/settings/development.yml, config/settings/test.yml, config/settings/production.yml の4ファイルができているはずです😎
一旦 config/settings.yml のみにフォーカスします!
他の3ファイルはRailsの環境ごとに上書きされるようの定数です!
それではいよいよ定数を記述していきます!
math:
pi: 3.14159
この記述で準備OKです!
.ymlなので、YAMLファイルの書き方に合わせて下さい。書き方は下記サイトを参考にしてみてください!
あとは使いたい箇所、例えばcontrollerに下記のように書くことで定数を呼び出すことができます💪
class HogeController < ApplicationController
# ...
# 受け取ったパラメータに円周率をかける
def calc
@answer = params[:radius].to_i * Settings.math.pi
end
# ...
end
Settings.math.pi のように、 Settings からはじめて、あとはsettings.ymlファイルのネストの順にドットつなぎにするだけです!
先程は、定数は大文字とアンダースコアで書いて欲しいと言ったのですが、このgemを使う時は慣例的に全て小文字でOKです!
このように定数を1つのファイルで宣言することで、定数一覧を見たい時はそのファイルを確認するだけで良くなり、管理がラクになります✨
また、定数の変更が合った時も1箇所を修正するだけで良くなるので、変更にも強くなりますね😎
終わりに
今回は、定数の簡単な説明と、Railsでよく使うgemの紹介をしました。
個人的にはこの”config”はアプリケーションを使う上でほぼ必須だと思っているので、ぜひ取り入れてみて下さい!