犬の散歩記録をRubyで管理する場合、日時・距離・場所などの情報を効率よく保存し、後から検索や集計がしやすい構造にすることが重要です。本記事では、配列やハッシュを活用した設計方法と、集計メソッドの考え方を解説します。
散歩記録を表すデータ構造
基本的には、1回の散歩をハッシュで表現し、複数回の散歩は配列で管理する方法がシンプルで扱いやすいです。
例:walk = { date: '2026-04-09', distance: 2.5, location: '公園' }walks = [walk1, walk2, walk3]
クラスを活用したオブジェクト指向設計
より柔軟に管理したい場合は、Walkクラスを作成し、犬の散歩記録をオブジェクトとして扱う方法がおすすめです。
例:class Walk
attr_accessor :date, :distance, :location
def initialize(date, distance, location)
@date = date
@distance = distance
@location = location
end
end
これにより、walks配列にWalkオブジェクトを格納でき、メソッドで処理しやすくなります。
集計や検索のメソッド設計
総距離や平均距離の算出にはEnumerableモジュールのメソッドを活用できます。
例:total_distance = walks.sum(&:distance)average_distance = walks.sum(&:distance) / walks.size
特定の場所や期間での検索にはselectメソッドを使用します。park_walks = walks.select { |w| w.location == '公園' }
表示や整形の工夫
集計結果や一覧を表示する際には、to_sメソッドやformatを使うと見やすくなります。
例:walks.each { |w| puts format("%s: %.1fkm (%s)", w.date, w.distance, w.location) }
まとめ
Rubyで犬の散歩記録を効率よく管理するには、散歩1回をハッシュやオブジェクトで表現し、配列でまとめる方法が基本です。Enumerableメソッドを活用することで、総距離や平均距離の集計、特定条件での検索も簡単に行えます。to_sやformatを組み合わせれば、画面表示も見やすく整理できます。


コメント