【Rails】サーバー初心者のための基本文法
こんにちは^^
新卒エンジニアのひなこです!
先週からサーバー側も挑戦しています!
新たな挑戦ということで、少しずつではありますが、
できることが増えていくことが、とても楽しいです!
ということで....
実務で使う初心者のためのRailsの基本文法をまとめてみました!
私自身Railsはまだまだ勉強中でありますので、
新たに学んだこと・使える書き方などあれば、
次回も基本文法まとめをして、成長していきたいと思います!!
|| =
変数がnilかfalseの時のみ値を代入できる。
1 2 3 4 5 6 |
name = nil name || = “名前はまだ無い” puts name # => 名前はまだ無い |
if文
if文の書き方は2パターンある。
ソースコードの可読性のために使い分けられるといいかも!
①
1 2 3 4 5 6 |
if nakigoe == “にゃんにゃん” “猫です” end # => 猫です |
②後置if文
1 2 3 4 |
“猫です” if nakigoe == “にゃんにゃん” # => 猫です |
後置if文の実例
1 2 3 4 5 6 7 8 |
def is_wagahaiha_neko(name) cat = Cat.find_by(name: name) return if cat.nil? # もしcat_nameがnilだったらreturnで処理を出る puts cat.name end |
三項演算子
書き方としては、reactとほぼ同じ!
1 2 3 4 5 6 7 |
if has_name === true puts(”名前はもうある”) else puts(”名前はまだ無い”) end |
↓三項演算子に
1 2 3 |
has_name === true ? puts(”名前はもうある”) : puts(”名前はまだ無い”) |
!○○, !!○○
!○○は反転したbooleanの形に変換できる。
例)
true→false
false→true
一方、 !!○○は !○○をもう一度反転できる。
例)
true→false→true
false→true→false
下記のように、変数にnilを代入してみると、 !!○○の使い方を理解できるはず!
1 2 3 4 5 6 |
name = nil puts name # ⇒nil puts !name # ⇒true puts !!name # ⇒false |
eachメソッド
関連メソッドもたくさんあるため、用途に応じて使い分ける必要がある。
- each_with_index:配列のインデックス番号も扱う
- each_line:改行文字毎に文字列を取得する
- each_slice:配列の要素を指定した数値で切り分ける
- each_with_object:値を渡して新たな配列を作成する
①
1 2 3 4 5 |
cats.each do |cat| puts "#{cat}は猫である" end |
②do省略も可能
1 2 3 4 5 |
cats.each { |cat| puts "#{cat}は猫である" } |
mapメソッド
1 2 3 4 5 6 7 |
cats.map { |cat| cat.name } # => ["タンコン", "コンスン"] cats.map(&:name) # => ["タンコン", "コンスン"] |
&.
エラーの代わりにnilを返却。
tryメソッドより処理速度が速い。
tryメソッドはRails環境、&.はRudy環境で動くため、後者の方が汎用性が高い
1 2 3 4 5 6 |
cat = nil cat.name.length # => NoMethodError: undefined method `length' for nil:NilClass cat.name&.length # => nil |
tryメソッド
レシーバーがnilだった場合やメソッドが存在・定義されていない場合に、NoMethodErrorを返さずnilを返してくれる
1 2 3 4 5 |
cat = nil cat.try(:name) # => nil |
1 2 3 4 5 |
# catが存在しない場合 cat.try(:name) # => nil |
参考サイト
Ruby on Railsの現場でよく見る書き方【実例あり】
https://qiita.com/ryokky59/items/988f25fa1fb6b9aefa8e
【Ruby each】使い方の基礎を3つのパターンで解説
https://www.sejuku.net/blog/55970
【Rails】エラーハンドリングに役立つぼっち演算子(.&)とtry(try!)メソッドについて
https://techtechmedia.com/safe-navigation-operator-rails/
【Ruby】 putsメソッドを使って出力を確認する方法をマスターしよう!
https://pikawaka.com/ruby/puts