2 flat logo on transparent 256
2018-01-25

Ruby On Railsで三項演算子を使って、if文をスリムに書いてみる

491 min

プログラミングをしているとif文を利用する事が必ず発生します。

プログラミング言語を問わず、if文をよりシンプルに書く三項演算子が容易されており、今回RUby ON Railsで利用できる

三項演算子(条件演算子)を紹介します。

三項演算子とは

まずは普通のif文

if 条件
 式1
else
 式2
end

三項演算子にしたパターン

条件 ? 式1 : 式2

このようにrubyのif文を1行で記載することができます。

三項演算子の場合 条件がtureの場合は式1が適用され、

falseの場合は式2が適用されます。

Rubyの三項演算子記載例

コード例
num = 80
p num < 90 ? "90未満です" : "90以上です"

num = 91
p num < 90 ? "90未満です" : "90以上です"

どちらも条件的に値が90より大きいか、小さいかによって その後の出力メッセージが変化します。

コード例の2行目のnumは80となるため、条件がtrueとなり "90未満です"が出力されます。

出力結果

"90未満です"

コード例の3行目のnumは91となるため、条件がfalseとなり "90以上です"が出力されます。

出力結果

"90以上です"

Ruby On Railsでの利用例1

たとえばControllerのアクションによって、ボタン名を変更する場合

def article_button_name
  controller.action_name == 'show' ? "記事を投稿する" : "記事を更新する"
end

Ruby On Railsでの利用例2

フォーム上で新規登録フォームならcreatepathへ 編集フォームならeditpathへ変更する

- url = @article.new_record? ? artices_path : article_path

-urlの三項演算子は前回紹介したRuby On Railsのパーシャルとnew_record?メソッドを利用しフォームを簡素化するの記事で、利用しており、より具体的な活用例となります。

その他の関連記事

【初心者・独学者向け】Ruby On Railsのviewを劇的に変える?!Slim入門

Ruby On RailsでSassを活用し、CSS作成を高速・効率化する

Ruby On Rails でページネーションを設定する

前の記事
次の記事