Open6

Ruby / Ruby on Rails 学習メモ

shigeshige

ハッシュの書き方のまとめ

ハッシュには以下の3通りの書き方があって
3番目の「キーがシンボルの書き方(省略形)」が一般的

# 1. キーが文字列の書き方
{"name" => "shige", "age" => 25 }

# 2. キーがシンボルの書き方
{:name => "shige", :age => 25 }

# 3. キーがシンボルの書き方(省略形)
{name: "shige", age: 25 }
shigeshige

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}")
shigeshige

真偽値を返すメソッドの場合

rubyではメソッド名の最後に「?」を付けることにより、そのメソッドが真偽値を返すものであることを表す慣習がある。

def empty?
  self.size == 0
end
shigeshige

gets.chomp由来

gets.chompでコンソールへの入力待ち状態にすることできるがchompってなんやねんと思ったので、頭に残りやすくなるように由来などを調べてみた。

chompという名前は英語の「chomp(ムシャムシャ食べる、噛みちぎる)」に由来しているが、プログラミングにおいては「余分な部分を噛み取って取り除く」といったイメージで使われています。

getsメソッドはユーザーからの入力を受け取るもので、通常は入力の末尾に改行が含まれます。そのままだと改行が不要な場合でも文字列に含まれてしまうため、chompメソッドで末尾の改行を削除してすっきりした状態にするのが一般的です。

なるほど(?)

shigeshige

ルーティングの役割

Rails内ではコントローラを経由してビューを返しているが、ブラウザとコントローラを繋ぐ役割を担うのがルーティング。
ページが表示されるまでに、ルーティング→コントローラ→ビューという順で処理が行われている。

shigeshige

Viewファイル内で変数を定義する場合

erbという形式のファイルでは、<% %>で囲むことで、HTMLファイルの中にRubyのコードを記述することができる。「erb」とは「Embedded Ruby(埋め込みRuby)」の略。

<% name = "shige" %>
<% age = 25 %>
<p>Name: <%= name %></p>
<p>Age: <%= age %></p>