- Published on
Rails 5でコントローラーで共通の変数を定義するには
- Authors
- Name
- Shou Arisaka / 有坂翔
Rails 5でコントローラーで共通の変数を定義する方法に関するメモです。
Railsアプリケーションでコントローラー全体やアプリ全体で共通の変数を定義する方法はいくつかあります。 以下にそれらの方法と関連情報をまとめました。
ApplicationControllerに定義する方法:
class ApplicationController < ActionController::Base HASH_DATA = { value: "key" } end
この方法は、すべてのコントローラーとアクションで利用可能な定数を定義します。定数として定義された
HASH_DATA
はアプリケーション全体で共有されます。コントローラー内で
before_action
を使用する方法:class SomeController < ApplicationController before_action :set_admin def set_admin @listOfWords = ['a', 'b', 'c'] end end
この方法では、
before_action
を使用して特定のコントローラー内で共通の変数(この場合は@listOfWords
)を定義します。この変数はコントローラー内のすべてのアクションからアクセスできます。ApplicationControllerにメソッドを定義する方法:
class ApplicationController < ActionController::Base def common_variable @listOfWords = ['a', 'b', 'c'] end end
この方法では、
ApplicationController
にメソッドを追加し、コントローラー内でそのメソッドを呼び出すことで共通の変数を設定できます。これは変数を定義するための柔軟な方法で、common_variable
メソッドを必要なコントローラーで呼び出すことができます。
上記の方法の選択肢は、アプリケーションの要件に合わせて柔軟に選択できます。変数はインスタンス変数(@variable
)として定義する必要があります。このような変数は、ビューでアクセスできるため、コントローラーからビューにデータを渡すのに便利です。