Ruby / Ruby on Rails 学習メモ
ハッシュの書き方のまとめ
ハッシュには以下の3通りの書き方があって
3番目の「キーがシンボルの書き方(省略形)」が一般的
# 1. キーが文字列の書き方
{"name" => "shige", "age" => 25 }
# 2. キーがシンボルの書き方
{:name => "shige", :age => 25 }
# 3. キーがシンボルの書き方(省略形)
{name: "shige", age: 25 }
Rubyのハッシュについて
Rubyにおける「ハッシュ」は、Pythonでいう「辞書 (dictionary)」に相当するもの。
どちらもキーと値のペアを保持するデータ構造で、特定のキーを使って対応する値にアクセスできます。
具体的に、RubyとPythonでのハッシュと辞書の使用方法を比較してみる。
1. 作成方法
Ruby
# Rubyのハッシュ
person = { "name" => "shige", "age" => 25, "city" => "Tokyo" }
Python
# Pythonの辞書
person = { "name": "shige", "age": 25, "city": "Tokyo" }
2. 値へのアクセス
Ruby
puts person["name"] # 出力: shige
Python
print(person["name"]) # 出力: shige
3. 値の追加・更新
Ruby
person["age"] = 26 # ageの値を更新
person["country"] = "Japan" # 新しいキーと値を追加
Python
person["age"] = 26 # ageの値を更新
person["country"] = "Japan" # 新しいキーと値を追加
4. キーの存在確認
Ruby
puts person.key?("age") # 出力: true
Python
print("age" in person) # 出力: True
5. 各要素の繰り返し処理
Ruby
person.each do |key, value|
puts "#{key}: #{value}"
end
Python
for key, value in person.items():
print(f"{key}: {value}")
真偽値を返すメソッドの場合
rubyではメソッド名の最後に「?」を付けることにより、そのメソッドが真偽値を返すものであることを表す慣習がある。
def empty?
self.size == 0
end
gets.chomp由来
gets.chompでコンソールへの入力待ち状態にすることできるがchompってなんやねんと思ったので、頭に残りやすくなるように由来などを調べてみた。
chompという名前は英語の「chomp(ムシャムシャ食べる、噛みちぎる)」に由来しているが、プログラミングにおいては「余分な部分を噛み取って取り除く」といったイメージで使われています。
getsメソッドはユーザーからの入力を受け取るもので、通常は入力の末尾に改行が含まれます。そのままだと改行が不要な場合でも文字列に含まれてしまうため、chompメソッドで末尾の改行を削除してすっきりした状態にするのが一般的です。
なるほど(?)
ルーティングの役割
Rails内ではコントローラを経由してビューを返しているが、ブラウザとコントローラを繋ぐ役割を担うのがルーティング。
ページが表示されるまでに、ルーティング→コントローラ→ビューという順で処理が行われている。
Viewファイル内で変数を定義する場合
erbという形式のファイルでは、<% %>で囲むことで、HTMLファイルの中にRubyのコードを記述することができる。「erb」とは「Embedded Ruby(埋め込みRuby)」の略。
<% name = "shige" %>
<% age = 25 %>
<p>Name: <%= name %></p>
<p>Age: <%= age %></p>