草庐IT

mysql - 从 MYSQL 中两个别名的其余部分创建第三个别名?

全部标签

Ruby 将 String 拆分为两部分并放入带有预定义键的散列

我不知道这是否真的是好的ruby​​代码,但我想做的是将一个String分成两个单独的部分,并将这两个部分作为两个特定键的值。例如:name_a="HenryFillenger".split(/\s+/,2)name={:first_name=>name_a[0],:last_name=>name_a[1]}我想知道这是否可以通过一些ruby​​魔法在一行中完成。 最佳答案 您可以使用Hash[]和zip这样做:name=Hash[[:first_name,:last_name].zip("HenryFillenger".split

ruby-on-rails - 阻止创建一个类的多个对象

如何将任何类的对象限制为一个。我的课看起来像:classSpeakerincludeMongoid::Documentfield:name,:type=>Stringend我只想让speaker的单个实例。一种方法是添加一个验证,该验证将检查Speaker类中已经存在的对象数量。有ruby做事的方式吗? 最佳答案 如何使用Singleton模块? 关于ruby-on-rails-阻止创建一个类的多个对象,我们在StackOverflow上找到一个类似的问题:

ruby - 在指定目录下创建文件

如何在特定目录中创建新文件。我创建了这个类:classFileManagerdefinitialize()enddefcreateFile(name,extension)returnFile.new(name我想指定创建文件的目录(路径)。如果这个不存在,他将被创建。所以我必须使用fileutils如图所示here在创建文件之后或者我可以在创建时直接指定创建文件的位置吗?谢谢 最佳答案 以下代码检查您传入的目录是否存在(使用File.dirname从路径中提取目录),如果不存在则创建它。然后它会像以前一样创建文件。require'f

ruby - 在 Ruby 中将两个数组相乘并获得相乘值之和的有效方法是什么?

在Ruby中将两个数组相乘并获得相乘值之和的有效方法是什么?我在Ruby中有两个数组:array_A=[1,2,1,4,5,3,2,6,5,8,9]array_B=[3,2,4,2,5,1,3,3,7,5,4]我的目标是获取array_A*array_B的总和值,即1*3+2*2+1*4+...+8*5+9*4。因为我需要在我的应用程序中对它们进行数百万次计算,进行此类计算的最有效方法是什么?这就像矩阵计算:1*N矩阵*N*1矩阵或向量点积。 最佳答案 更新我刚刚根据新评论更新了基准。正在关注Joshua'scomment,注入(i

ruby - 在 Ruby 中动态创建多维哈希

我是一名PHP开发人员,正在努力精通Ruby。我现在正在努力的项目之一是一个源代码审计工具,它可以扫描webapp文件以寻找多种网络编程语言中的潜在危险功能。找到匹配项后,脚本会将相关信息保存在poi(兴趣点)类中,以便稍后显示。该类的示例实例看起来像这样(在YAML中建模):poi:file_type:"php"file:"the-scanned-file.php"line_number:100match:"eval()"snippet:"echoeval()"在展示中,我想像这样组织这些兴趣点:-file_type--file---match(thesearchedpayload)

ruby - 缺少 mysql2 gem。将它添加到你的 Gemfile : gem 'mysql2'

版本ruby1.9.2-p290导轨3.0.9rvm下的mysql2-0.2.13Ubuntu11.04gem使用“geminstallmysql2-v'rails和“railsc”工作正常。我需要使用activerecord3.0.9在Rails环境之外运行脚本。当我运行脚本时,这是输出:======================/home/ross/work/x/library/models.rb:27:in`eval':!!!Missingthemysql2gem.AddittoyourGemfile:gem'mysql2'(RuntimeError)from/home/ros

ruby - AMQP 动态创建订阅队列

我正在尝试使用AMQP、Websockets和Ruby构建一个简单的聊天应用程序。我知道这可能不是理解AMQP的最佳用例,但我想了解我哪里出错了。以下是我的amqp-server代码require'rubygems'require'amqp'require'mongo'require'em-websocket'require'json'classMessageParser#messageformat=>"room:harry_potter,nickname:siddharth,room:members"defself.parse(message)parsed_message=JSON.

ruby - 如何创建与帧缓冲区通信的 Ruby 应用程序?

我有一个RaspberryPiTFT7"触摸屏显示器,我想创建一个简单的应用程序来显示和输出系统数据(即CPU使用率、温度等)。我注意到目前常见的实现方法是使用pygame库输出到显示器连接到的帧缓冲区/dev/fb1。我想执行相同的操作,但使用Ruby,因为我更熟悉这门语言。有人可以为我指明正确的方向,让我知道如何开始吗?我查看了ruby​​game和gosu库,它们似乎能够做我想做的事情,即绘制屏幕,​​但我找不到任何关于如何将输出定向到的信息帧缓冲区本身。 最佳答案 rubycorelib有一个IO您应该能够使用该类将输出定向

ruby - Ruby 中不一致的隐式哈希创建?

好的,所以我将我自己的DSL中的一些东西与Ruby进行了比较。他们都支持的一个结构是这个x=["key"=>"value"]知道数组和散列的区别,我会认为这是不合法的,但是在Ruby中的结果是[{"key"=>"value"}]这是为什么?有了这种语法,你为什么不能这样做x=("key"=>"value")为什么数组是隐式创建的哈希的特例? 最佳答案 另一个特殊情况是在函数调用中,考虑:deff(x)puts"OK:#{x.inspect}"endf("foo"=>"bar")=>OK:{"foo"=>"bar"}因此在某些情况下,

ruby - 使用 $& 全局变量的编程别名方法

我正在尝试为使用Ruby的特殊$&(returnslastregexmatch)的方法起别名。我可以手动执行此操作并且有效:original=String.instance_method(:sub)String.send(:define_method,:sub)do|*args,&block|puts"called"original.bind(self).call(*args,&block)end"foo".sub(/f/){$&.upcase}called#=>"Foo"但是,如果我尝试编写一个为我执行此操作的方法,它会失败:defprogramatic_alias(klass,me