【问题标题】:Error: undefined method `ord' for "T":String错误:“T”的未定义方法“ord”:字符串
【发布时间】:2014-10-10 13:00:57
【问题描述】:

我正在制作一个应用程序,以使用带有 ruby​​ 的潮汐SDK 获取“密钥”。 TideSDK 支持 ruby​​ 1.8.7,所以我使用的是 ruby​​ 1.8.7,不管怎样。

我正在关注 this wiki,因为我在 ruby​​ 中使用了潮汐SDK

我有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

顺便说一句,感谢您的反对,现在我知道 ord 在 ruby​​ 1.8 中不存在,我正在使用它

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

【问题讨论】:

  • 你有什么问题?

标签: ruby tidesdk


【解决方案1】:

看起来这是链接到这一行:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-12
    • 2015-01-29
    • 2021-07-21
    • 1970-01-01
    • 2021-11-26
    • 2014-06-11
    • 2014-06-01
    相关资源
    最近更新 更多