我正在试着写一个简单的程序,它接受一个RGB值,并使用鞋子(葡萄干修订版1134)将背景更改为该颜色。下面是我的代码:
Shoes.app :title => "Show a Color" do
def convert_to_num(value)
# Splits string into numerical values
value.split(',').map { |num| num.to_i }
end
def to_rgb(value)
red, green, blue = convert_to_num(value)
rgb(red, green, blue)
end
stack :height => 500, :width => 500 do
value = edit_line
button "Change color!" do
background to_rgb(value)
end
end
end当我运行它时,我得到这个错误:私有方法'split‘被调用(Shoes::EditLine):Shoes::EditLine。为什么会这样呢?该方法在irb中有效。
发布于 2009-08-28 15:12:51
您正在尝试拆分EditLine对象,而不是其文本。您可以使用text方法获取其文本,如下所示:
def convert_to_num(value)
# Splits string into numerical values
value.text.split(',').map { |num| num.to_i }
end发布于 2009-08-28 07:30:03
我假设您希望value是一个字符串。传递给to_rgb的value是一个Shoes::EditLine,而不是一个字符串。我从错误消息中了解到这一点,而不是通过阅读代码。您的convert_to_num方法很好,只是传递的对象类型不是您认为的类型。
我以前没有用鞋子编程,所以我不确定如何解决这个问题,但现在你至少知道是什么导致了它。
https://stackoverflow.com/questions/1344624
复制相似问题