私有方法'split'调用(Shoes :: EditLine):Shoes :: EditLine

时间:2009-08-28 01:46:10

标签: ruby shoes

我正在尝试编写一个带有rgb值的简单程序,并使用Shoes(Raisins修订版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。

2 个答案:

答案 0 :(得分:2)

您正在尝试拆分EditLine对象,而不是文本。您可以使用text方法获取其文本,如下所示:

    def convert_to_num(value)
    # Splits string into numerical values
        value.text.split(',').map { |num| num.to_i }
    end

答案 1 :(得分:1)

我假设你希望value是一个字符串。您传递给value的{​​{1}}是to_rgb,而不是字符串。我知道从查看错误消息,而不是阅读代码。你的Shoes::EditLine方法很好,你只是没有传递你认为你的对象类型。

我之前没有使用过鞋子编程,所以我不确定如何解决这个问题,但现在你知道是什么导致了这个问题。