1
0

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 3 years have passed since last update.

Ruby on Rails 変数、定数まとめ

Posted at

Ruby on Rails 変数、定数まとめ

Railsにおいてよく使う変数、定数についてまとめました。

前提条件

  • 変数
    • 変更可能
  • 定数
    • 定数不可

変数

ローカル変数

  • メソッドやブロック内でのみ有効
  • 変数名
    • 小文字のスネークケース
      user_name = 'jon'

Railsでの活用

  • View
    • View でローカル変数を扱いたい場合は、Viewファイル内で定義する。
      [users/show.html.erb]
<% 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]
MAX_SIZE = 10
  • 各 Model で使用する定数を定義するには、model ファイルのクラス内に定義する。
    [user.rb]
class User
  OFFICIAL_ID = 100
end

Controller や View で参照する場合は、User::OFFICIAL_IDと書く

1
0
0

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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?