错误:未定义的方法`ord' for" T":String

时间:2014-08-17 12:53:14

标签: ruby tidesdk

我正在申请使用带红宝石的潮汐网获取“钥匙”。 TideSDK支持ruby 1.8.7,所以我使用的是ruby 1.8.7,无论如何。

我正在关注this wiki使用带红宝石的潮汐网

我的index.html文件看起来像这样:

<script type="text/ruby">  
require 'enumerator'

def gen_key(name, acc_type) 
   name = name.gsub(/[^A-Za-z0-9]/,"").upcase
   acc_type = acc_type.upcase
   name_array = name.split("")
   data = [0, 0, 0]
   name_array.each_slice(3) do |i|
      i.each_with_index do |j, index|
          data[index] += j.ord*name.length
      end
   end
   # other stuff here for return key
end
</script>
<form id="myForm" action="javascript:getKey();">
 <input type="text" name="name" id="name"/>
 <input type="text" name="type" id="type"/>
    <input type="submit"/>
</form>
<script src="jquery.min.js"></script>
<script>
function getKey(){
        var values = {};
        $.each($('#myForm').serializeArray(), function(i, field) {
            values[field.name] = field.value;
        });
        alert(gen_key(values['name'], values['type']));
}
</script>

当我启动我的应用并提交表单时,我在控制台上收到错误:

Error: undefined method `ord' for "T":String
顺便说一下,感谢downvote,现在我知道ruby 1.8中不存在ord,我正在使用这个

data[index] += j[0]*name.length

1 个答案:

答案 0 :(得分:3)

看起来这与此行相关联:

data[index] += j.ord*name.length

您正在调用Ruby 1.8.7中String中不存在的“ord”方法。 {3}确实存在于1.9.3中。