
【Rails】定数とは? 定数を扱うgemの紹介まで【初学者向け】
はじめに
こんにちは、株式会社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ファイルの書き方に合わせてください。書き方は下記サイトを参考にしてみてください!
yamlファイルの書き方やと特徴 - Qiita
はじめに 現在Railsを勉強中です。 アプリケーションを作成する上で、モデルやカラム、その他メッセージ等を日本語で出力したり扱いたい場面が必ずあると思います。自分の場合、すぐに忘れてしまうためその都度ググって、書き方合ってたかを確認しています。 ぶっちゃけYAMLファイ...
qiita.comあとは使いたい箇所、例えばcontrollerに下記のように書くことで定数を呼び出すことができます💪
class HogeController < ApplicationController
# ...
# 受け取ったパラメータに円周率をかける
def calc
@answer = params[:radius].to_i * Settings.math.pi
end
# ...
endSettings.math.piのように、 Settingsからはじめて、あとはsettings.ymlファイルのネストの順にドットつなぎにするだけです!
先程は、定数は大文字とアンダースコアで書いて欲しいと言ったのですが、このgemを使う時は慣例的に全て小文字でOKです!
このように定数を1つのファイルで宣言することで、定数一覧を見たい時はそのファイルを確認するだけで良くなり、管理がラクになります✨
また、定数の変更が合った時も1箇所を修正するだけで良くなるので、変更にも強くなりますね😎
終わりに
今回は、定数の簡単な説明と、Railsでよく使うgemの紹介をしました。
個人的にはこの「config」はアプリケーションを使う上でほぼ必須だと思っているので、ぜひ取り入れてみてください!
GitHub - rubyconfig/config: Easiest way to add multi-environment yaml settings to Rails, Sinatra, Padrino and other Ruby projects.
Easiest way to add multi-environment yaml settings to Rails, Sinatra, Padrino and other Ruby projects. - rubyconfig/config
github.com

