私はmovies
と呼ばれる映画リストを更新しようとしています。 include?
を使用して、プログラムが既にリストにあるムービーを更新しようとしているかどうか、またはムービーが現在movies
に含まれていないかどうかを調べたいと思います。含めるには?私のコードで作業する
ここで更新がcase文の下にあるオブジェクト映画
movies = {
:"Mean Girls" => 4,
Avatar: 2,
:"Spiderman 2" => 3,
Shrek: 4
}
です。
when "update"
puts "Type in the movie you'd like to update"
title = gets.chomp
if movies[title.to_sym].include?(title.to_sym)
puts "Type in a new rating of 1-4 for that movie"
rating = gets.chomp
movies[title.to_sym] = rating.to_i
else
puts "That movie is not currently in our movie list"
end
私は私がエラーメッセージを取得更新したい映画のタイトルを入力:
undefined method `include?' for 4:Fixnum
それはどういう意味か?ここでinclude?
メソッドを使用することはできませんか?
include?
の後にtitle.to_sym
を削除しようとしましたが、それでも機能しませんでした。
ここではすべての私のコードの映画以来
movies = {
:"Mean Girls" => 4,
Avatar: 2,
:"Spiderman 2" => 3,
Shrek: 4
}
puts "Do you want to add a movie, update a movie ranking, display all movies and rankings or delete a movie?"
choice = gets.chomp
case choice
when "add"
puts "Type in the movie you'd like to add"
title = gets.chomp.to_sym
if movies[title].nil?
puts "Type in a rating of 1-4 for that movie"
rating = gets.chomp.to_i
movies[title] = rating
else
puts "That movie is already in our list. Run the program and select update to change its rating"
end
when "update"
puts "Type in the movie you'd like to update"
title = gets.chomp
if movies[title.to_sym].include?(title.to_sym)
puts "Type in a new rating of 1-4 for that movie"
rating = gets.chomp
movies[title.to_sym] = rating.to_i
else
puts "That movie is not currently in our movie list"
end
when "display"
puts "Movies!"
when "delete"
puts "Deleted!"
else
puts "Error!"
end
"[mcve]"をお読みください。 'movies'が何を含んでいるのかはわかりませんが、配列のハッシュになっているように見え、' title.to_sym'が入っているかどうかを見たいと思っています。しかし、それはちょうどあなたのコードが実行されていないか、それが問題を実証していないためです。 –
エラーは 'Fixnum'(おそらく整数)に' include? 'メソッドを適用しようとしていることを意味します。 'movies [title.to_sym]'は明らかに単なる数字であり、 'include? 'メソッドを受け入れません。 – lurker
** movies [title.to_sym] **はFixnumで、Fixnumにはメソッドが含まれていないのですか?...しかし、@theTinManが上で指摘したように、あなたのコードは何を知るにはあまり役に立ちません起こっている。コードをもっと表示してください。 –