Tag: Ruby的ruby

Ruby 1.9.2和Rails 3无法打开rails控制台

[gkaykck@main myApplication]$ rails console /usr/local/lib/ruby/1.9.1/irb/completion.rb:9:in `require': no such file to load — readline (LoadError) from /usr/local/lib/ruby/1.9.1/irb/completion.rb:9:in `<top (required)>' from /usr/local/lib/ruby/gems/1.9.1/gems/railties-3.0.3/lib/rails/commands/console.rb:3:in `require' from /usr/local/lib/ruby/gems/1.9.1/gems/railties-3.0.3/lib/rails/commands/console.rb:3:in `<top (required)>' from /usr/local/lib/ruby/gems/1.9.1/gems/railties-3.0.3/lib/rails/commands.rb:20:in `require' from /usr/local/lib/ruby/gems/1.9.1/gems/railties-3.0.3/lib/rails/commands.rb:20:in `<top (required)>' from script/rails:6:in `require' from script/rails:6:in `<main>' 我已经在ruby1.9.2p136安装轨3,这是好的我猜。 但我无法启动轨道控制台,它给了我复制的错误。 该应用程序与ruby1.8.7工作得很好,我从来没有看到这样的错误。 任何想法可能是什么?

为什么在我的Rails多选中,第一个元素总是空白,使用embedded式数组?

我正在使用Rails 3.2.0.rc2 。 我有一个Model ,其中我有一个静态Array ,我通过一个表单提供,使用户可以select一个Array的子集,并将其select保存到数据库,存储在Model中的单个列。 我已经在存储Array的数据库列上使用了序列化,并且Rails将用户的select正确地转换为Yaml(并在读取该列时返回到数组)。 我正在使用多选表单input来进行select。 我的问题是,我现在拥有它的方式,一切正常,除了用户的子集数组发送到服务器时总是有一个空白的第一个元素。 这不是什么大不了的事情,而且我可以编写代码以在事实之后将其切断,但是我觉得我只是在制造某种语法错误,因为在我看来,默认的Rails行为并不是故意的没有任何理由添加这个空白元素。 我一定错过了某些东西,或者忘了禁用某种设置。 请帮助我了解我所缺less的东西(或者指出一些很好的文档,这些文档比我在intertubes上find的更深入)。 MySQL数据库表“模型”: 包括一个名为subset_array的列,它是一个TEXT字段 类模型包括以下设置: serialize :subset_array ALL_POSSIBLE_VALUES = [value1, value2, value3, …] 表单编辑模型包括以下input选项: f.select :subset_array, Model::ALL_POSSIBLE_VALUES, {}, :multiple => true, :selected => @model.subset_array 从客户端PUT到服务器看起来像这样: 假定只select了value1和value3 "model" => { "subset_array" => ["", value1, value3] } 数据库更新如下所示: UPDATE 'models' SET 'subset_array' = '— \n- \"\"\n- value1\n- […]

什么阻止Ruby,Python来获得Javascript V8的速度?

有没有任何Ruby / Pythonfunction阻止优化的实现(例如内联caching )V8引擎? Python由Google合作开发,所以不应该被软件专利所阻挡。 或者这是Google投入V8项目的资源问题。

int((0.1 + 0.7)* 10)= 7在几种语言。 如何防止这一点?

最近我遇到了几种语言的错误/function。 我有一个非常基本的知识,它是如何引起的(我想要一些详细的解释),但是当我想到我多年来一直想要的所有错误时,问题是我怎样才能确定“ 嘿,这可能会导致一个riddiculous的错误,我最好使用任意的精度函数 “,其他语言有这个错误(和那些谁不, 为什么 )。 另外,为什么0.1 + 0.7这样做,即0.1 + 0.3没有,还有其他众所周知的例子吗? PHP //the first one actually doesn't make any sense to me, //why 7 after typecast if it's represented internally as 8? debug_zval_dump((0.1+0.7)*10); //double(8) refcount(1) debug_zval_dump((int)((0.1+0.7)*10)); //long(7) refcount(1) debug_zval_dump((float)((0.1+0.7)*10)); //double(8) refcount(1) python: >>> ((0.1+0.7)*10) 7.9999999999999991 >>> int((0.1+0.7)*10) 7 使用Javascript: alert((0.1+0.7)*10); //7.999999999999999 alert(parseInt((0.7+0.1)*10)); //7 ruby: >> […]