我运行此代码,但收到错误。
代码在这里: -
class Text
def post(success, error)
if authenticate?(@user, @password)
success.call
else
erro.call
end
end
end
text = Text.new('Ruby Bits!')
success = ->{ puts "Sent!"}
error = ->{ raise 'Auth error'}
text.post(success,error)
请告诉我们。如何解决这个问题?
答案 0 :(得分:0)
仔细查看引发ArgumentError的行号(在您的情况下,第25行)。
您正在将一个参数传递给Text#initialize,但尚未定义一个带有一个参数的initialize版本。
尝试这样做(调用默认的零参数Text构造函数):
class Text
def post(success, error)
if authenticate?(@user, @password)
success.call
else
error.call
end
end
end
text = Text.new
success = ->{ puts "Sent!"}
error = ->{ raise 'Auth error'}
text.post(success, error)
或者使用一个参数定义initialize:
class Text
def initialize(your_meaningful_argument)
# do stuff
end
def post(success, error)
if authenticate?(@user, @password)
success.call
else
error.call
end
end
end