2012-11-22 31 views
2

我不斷收到此錯誤:未定義的方法`output_data」爲#<eventmanager進行:0x007fa4220320c8>(NoMethodError)

event_manager.rb:83:in ': undefined method output_data' for #<EventManager:0x007fc5018320c0> (NoMethodError)

我下面的練習on this website

這裏是我的代碼(我的錯誤出現接近年底與DEF OUTPUT_DATA ...):

# Dependencies 

require "csv" 

# Class Definition 

class EventManager 

INVALID_PHONE_NUMBER = "0000000000" 
INVALID_ZIPCODE = "00000" 

def initialize 
puts "EventManager Initialized." 
filename = "event_attendees.csv" 
@file = CSV.open(filename, {:headers => true, :header_converters => :symbol}) 
end 

def print_names 
@file.each do |line| 
    puts line.inspect 
    puts line[2] + " " + line[3] 
end 
end 

#printing home phone number method 
def print_numbers 
@file.each do |line| 
    number = clean_number(line[:homephone]) 
    puts number 
end 
end 
#cleaning numbers method 
def clean_number(number) 
    cleaner= number.delete('.' + ')' + '(' + '-') 
    if cleaner.length == 10 
    # Do Nothing 
    elsif cleaner.length == 11 
    if cleaner.start_with?("1") 
    cleaner = cleaner[1..-1] 
    else 
    cleaner = INVALID_PHONE_NUMBER 
    end 
else 
    cleaner = INVALID_PHONE_NUMBER 
end 
    return cleaner 
end 

def clean_zipcode(original) 
    if original.nil? 
    zipcode = INVALID_ZIPCODE 
    elsif original.length < 5 
    while original.length < 5 
     original = original.insert(0, "0") 
    end 
    else 
    return original 
end 
return zipcode 
end 


def print_zipcodes 
    @file.each do |line| 
    zipcode = clean_zipcode(line[:zipcode]) 
    puts zipcode 
end 

def output_data 
output = CSV.open("event_attendees_clean.csv", "w") 
@file.each do |line| 
    output << line 
end 
end 
end 
end 





# Script 
manager = EventManager.new 
#manager.print_numbers 
#manager.print_zipcodes 
manager.output_data 

我已經試過幾件事情,檢查了所有通過互聯網,我只是不能找出自己。

我真的很感激任何的幫助。

預先感謝您!

+0

Hi @David,我是新來張貼這裏,我看到你對我原來的帖子做了一些更正。我只是想知道他們爲什麼需要?我的意思是,那是不對的?謝謝! –

+0

這只是一些美容改變。像大寫字母並將代碼放入代碼塊中。 – 0x499602D2

+0

好的,謝謝。 –

回答

0

您定義嵌入print_zipcodesoutput_data方法(迭代塊未關閉)。嘗試縮進你的代碼 - 然後很容易發現錯誤。

+0

謝謝@samuil !!你不知道我被困在這多久了 –

+0

如果答案解決了你的問題,考慮接受它,所以其他用戶可以很容易地找到已知的解決方案。 – samuil

相關問題