MENU

presenceとpresent?の違い

presence

trueだった場合レシーバーを返す falseだった場合はnilを返す

# 変数に中身があれば、中身を返す
vairable = 'name'

variable.presence
=> name

# falseなら nilを返す
vairable = ''

variable.presence
=> nil

present?

返り値はboolean型を返す

# 変数に中身があれば、中身を返す
vairable = 'name'

variable.present?
=> true

# falseなら nilを返す
vairable = ''

variable.present?
=> false

便利な書き方

参考演算子などを使う時などにシンプルにかける

# presenceを使わない場合

variable = 'hello'

variable.present? ? variable : "NG"

# presenceを使う場合

variable = 'hello'

# || と組み合わせるといい感じになる
variable.presence ||  "NG"