0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Railsでチーム内共通の定数を利用する方法

Posted at

トップイメージ

Railsでチーム共通の定数を管理する

システムを作成していると、開発チームで共通の定数などを利用したいことがあると思います。

各画面共通の値やパラメーター等を共通で利用できれば、「あの画面では”1”の値が印刷済なのに、こっちの画面では”1”の値が印刷済」になっているとかいう状態を防ぐことができます。

もちろん、DBから値を取ってくるということもできますが、「チリも積もれば山となる」:smile:極力DBへ負荷を避けるという利点もありますね:start:

コンスト用のファイルを用意

config/initializer/constants.rbに次のようなファイルを用意します。

#constants.rb
#サーバーサイドを通さず、クライアントサイド側で利用したい定数は別途jsファイルなどにまとめましょう

module CommonConst

    ## クライアント名
    CLIENT_NAME = "○○社総合人事システム"
    ## 業務区分
    GYOMU_KBN = {
        "1" => "給与管理",
        "2" => "庶務事務管理",
        "3" => "勤怠管理"
    }.freeze

end

呼び出し方

例えば、viewファイルで次のように呼び出すことができます。

<nav class="navbar navbar-default">
	<div class="container-fluid">
		<div class="navbar-header">
			<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbarEexample">
				<span class="sr-only">Toggle navigation</span>
				<span class="icon-bar"></span>
				<span class="icon-bar"></span>
				<span class="icon-bar"></span>
      </button>
      <!-- ↓ここ共通定数の呼び出し -->
			<a class="navbar-brand" href="/"><%= CommonConst::CLIENT_NAME %>総合人事システム</a>
		</div>
		
		<div class="collapse navbar-collapse" id="navbarEexample">
			<ul class="nav navbar-nav">
				<li class="active"><a href="#">メニューA</a></li>
				
			</ul>
		</div>
	</div>
</nav>

また、共通定数を利用した、セレクトボックスやラジオボタンの作成など、フォームコントロールを作成することもできます。

<h1 class="text-center">チームで決まったコンストを呼び出そう</h1>

<div class="form-group">
    <div>
        <%= label_tag '業務区分',nil,class:"label label-default" %>
        <%= select_tag('select_gyomu',options_for_select((CommonConst::GYOMU_KBN.invert),class:'option form-control',selected:"1"),include_blank:true)%>
    </div>
</div>

↓が呼び出し結果の画像です。

定数呼び出しイメージ

ナビゲーションバーの、
「○○社総合人事システム」と、「給与管理」という項目が出ているセレクトボックスが共通定数から利用しています。(値は適当です)

このように、Railsでも結構簡単に、定数を利用できます。
とはいえ、Rubyにおける定数は取り扱いを注意しないと、値を変えられたり、参照先を変えることができるので、注意が必要です

0
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?