0

次のようなコードを実行しようとしています。

class Run_Fiction_Generator < Fiction_Generator
  def generate_story
    puts "Title: \"#{generator.title} #{generator.random_date}\""
    puts "---------"
    puts generator.story
  end
end

prompt = '>'

puts "Hello Welcome to Fiction Generator"
puts "First a little about me: "
puts ""

generator = Run_Fiction_Generator.new

puts "This amazing Fiction Generator was created by: #{generator.created_by}"
puts "He's a student with ID number: #{generator.student_id} "
puts ""
puts "Okay now your story! Enter '1' if you want to generate a story now, or '2' if you don't want to"
print prompt
answer = gets.chomp

if answer == "1"
  generate_story
else
  puts "It was nice meeting you, catch ya later!"
end

しかし、ステートメントのメソッドgenerator_storyはこのエラーをスローし続けます:if

main:Object の未定義のローカル変数またはメソッド 'generate_story' (NameError)

私は自分のコードでメソッドをすでに定義しているという印象を受けています。誰が私がどこで間違っているか教えてもらえますか?

4

3 に答える 3

6

generate_storyのメソッドでRun_Fiction_Generatorあり、次のように呼び出す必要があります。

generator.generate_story
于 2012-11-01T23:19:40.113 に答える
1

もう 1 つの問題は、ストーリーの生成メソッド内で変数とメソッドにアクセスする方法です。これを試して:

class Run_Fiction_Generator < Fiction_Generator
  def random_date
    "10/20/2012"
  end

  def title
   "Spooky, Late Halloween Story"
  end

  def generate_story
    puts "Title: \"#{title} #{random_date}\""
    puts "---------"
    puts @story
  end
end
于 2012-11-01T23:38:04.047 に答える
0

ところで:クラス名は「間違っています」

クラス名には '_ ではなくキャメルケースを使用して区切ります。

于 2013-11-06T19:19:14.587 に答える