当我运行此操作时,我收到一条错误消息,指出该城市未定义。 我该怎么办?
def ticket_format
text = ""
tickets.each do |price, artist|
if city == "chicago"
text += "#{artist} show will cost #{price}"
else
text += "You paid #{price} to see #{artist}"
end
end
text
end
答案 0 :(得分:2)
使用city
的方式意味着它是一个局部变量,即在函数体中定义的,还是在定义ticket_format
的同一个上下文中定义的方法。
city = 'a ctiy'
def ticket_format
city == 'a city'
...
end
# this will raise an error 'undefined local variable or method "city"'
ticket_format
因此,您是将city
作为参数传递,还是在定义city
的同一个类中定义方法ticket_format
def city
@city
end
def ticket_format
if city == 'a city'
...
end
或
def ticket_format city
if city == 'a city'
...
end