###前提・実現したいこと
classで定義した配列@@Food = []から、eachメソッドで配列の要素であるハッシュを取り出したい。
###発生している問題・エラーメッセージ
@@Food.each do |foods| として要素のハッシュをひとつずつ取り出して処理したかったのですが、エラーが生じてしまいます。
sample.rb:15:in `block in show_all_calory': undefined method `foods' for Food:Class (NoMethodError) from sample.rb:14:in `each' from sample.rb:14:in `show_all_calory' from sample.rb:32:in `<main>'
###該当のソースコード
class Food @@Foods = [] def self.input foods = {} puts "料理名を入力してください:" foods[:food] = gets.chomp puts "カロリーを入力してください:" foods[:calory] = gets.to_i @@Foods << foods end def self.show_all_calory sum = 0 @@Foods.each do |foods| puts "#{foods[:food]}:#{foods{:calory}}kcal" sum += foods[:calory] end puts "カロリー合計 :#{sum}kcal" end end while true do puts "[0]:カロリーを入力する" puts "[1]:カロリーの合計を見る" input = gets.to_i if input == 0 Food.input elsif input == 1 Food.show_all_calory exit end end
###試したこと
###補足情報(言語/FW/ツール等のバージョンなど)
食べ物とそのカロリーを入力し、そのセットがハッシュとして@@Foods配列に入り、
その配列からハッシュを取り出して表示するプログラムです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/11/01 09:08