Ruby on Rails 変数、定数まとめ
Railsにおいてよく使う変数、定数についてまとめました。
前提条件
- 変数
- 変更可能
- 定数
- 定数不可
変数
ローカル変数
- メソッドやブロック内でのみ有効
- 変数名
- 小文字のスネークケース
user_name = 'jon'
- 小文字のスネークケース
Railsでの活用
- View
- View でローカル変数を扱いたい場合は、Viewファイル内で定義する。
[users/show.html.erb]
- View でローカル変数を扱いたい場合は、Viewファイル内で定義する。
<% hoge = 'huga' %>
<div><%= hoge %><div>
- Controller
- Viewに変数の値をわたす必要がなかったり、Contrller内で変数の値を共有する必要がない場合は、ローカル変数に定義する
def create
article = Article.find( params[:id])
return render_404 if article.blank?
end
インスタンス変数
- 同じコントローラー内で使える変数
- 変数名
- 先頭に
@
を付ける
- 先頭に
Rails での活用
- Controller Action内で定義したインスタンス変数を View へわたす。
def show
@user = User.find(params[:id])
end
[users/show.html.erb]
<div>ユーザーID:<%= @user.id %><div>
※ローカル変数をわたすことはできない
def show
user = User.find(params[:id])
end
[users/show.html.erb]
<div>ユーザーID:<%= user.id %><div>
-> 参照不可
undefined local variable or method 'user'
グローバル変数
- 全てのContrller使える
- プログラムのどこからでも、変更、参照が可能
- 変数名
- 先頭に
@
を付ける
- 先頭に
定数
-
クラス内で定義する
-
定数名
- 大文字、スネークケース
Rails での活用
- [config/initializers/constants.rb]に共通の定数を定義する
- 全ての Controller, View で参照することができる
[config/initializers/constants.rb]
- 全ての Controller, View で参照することができる
MAX_SIZE = 10
- 各 Model で使用する定数を定義するには、model ファイルのクラス内に定義する。
[user.rb]
class User
OFFICIAL_ID = 100
end
Controller や View で参照する場合は、User::OFFICIAL_ID
と書く