Tag: 数组

迭代ruby中的哈希数组

所以,如果我有像这样的哈希数组:(ruby初学者) input = [ {“last_name”=>”Gay”, “first_name”=>”Rudy”, “display_name”=>”Rudy Gay”, “position”=>”SF”, “minutes”=>39, “points”=>25, “assists”=>6}, {“last_name”=>”Collison”, “first_name”=>”Darren”, “display_name”=>”Darren Collison”, “position”=>”PG”, “minutes”=>39, “points”=>14, “assists”=>4} ] 我将如何遍历数组以及迭代每个哈希以得到类似这样的东西: player1 = {display_name =>“rudy gay”,“position”=>“SF”} player2 = {display_name =>“darren collison”,“position”=>“PG”} 它会是什么样的 input.each do |x| Player.create(name: x[‘display_name’], position: x[‘position’] end (假设我有一个玩家模型) 有没有更好的方法来实现这一目标? 谢谢!

Ruby / Rails字符串数组到PostgreSQL插入

目前,我有一个rails项目,我试图将活动记录转到直接postgres,以便使用字符串数组进行大批量创建,其中值尚不存在(以避免重复)。 我面临的问题是试图逃避包含’或(等,在所述ruby数组中的字符串字符,以便postgres接受。)示例如下(显然它不起作用): Ruby数组: array_of_strings = [“example one’s value”, “example (2) value”] sql = “INSERT INTO TABLE (column) SELECT column FROM TABLE UNION VALUES #{array_of_strings} EXCEPT SELECT column FROM TABLE;” ActiveRecord::Base.connection.execute(ActiveRecord::Base.send(:sanitize_sql_array, sql))

为什么我不能在Rails的表中创建一个数组作为列?

为什么我不能这样做: class CreateModels < ActiveRecord::Migration def self.up create_table :fruit do |t| t.array :apples end end end 是否有其他方法可以使数组(“apples”)成为Fruit类实例的属性?

如何以智能方式从多维数组中“提取”值?

我正在使用Ruby on Rails 3.2.2和Ruby 1.9.2。 给定以下多维Array : [[“value1”, “value1_other”], [“value2”, “value2_other”], [“value3”, “value3_other”]] 我想得到( 注意 :我想“提取”所有“嵌套” Array第一个值): [“value1”, “value2”, “value3”] 我怎样才能以聪明的方式做到这一点?

尝试使用Ruby while循环查找字符串的元音

def count_vowels(string) vowels = [“a”, “e”, “i”, “o”, “u”] i = 0 j = 0 count = 0 while i < string.length do while j < vowels.length do if string[i] == vowels[j] count += 1 break end j += 1 end i += 1 end puts count end 我无法发现出错的地方。 如果该程序遇到辅音,它就会停止。 另外,使用“.each”方法如何解决同样的问题?

在Ruby哈希中查找重复项

我有一个哈希数组,我需要根据哈希值之间的一个匹配值来查找和存储匹配项。 a = [{:id => 1, :name => “Jim”, :email => “jim@jim.jim”}, {:id => 2, :name => “Paul”, :email => “paul@paul.paul”}, {:id => 3, :name => “Tom”, :email => “tom@tom.tom”}, {:id => 1, :name => “Jim”, :email => “jim@jim.jim”}, {:id => 5, :name => “Tom”, :email => “tom@tom.tom”}, {:id => 6, :name => “Jim”, :email […]

将命令行参数解析为通配符

我写了一个简单的脚本,将所有给定的参数写入单个文本文件,由换行符分隔。 我想使用OptionParser将文件列表传递给它。 我想使用/dir/*类的通配符添加几个文件。 我试过这个: opts = OptionParser.new opts.on(‘-a’, ‘–add FILE’) do |s| puts “DEBUG: before #{s}” @options.add = s puts “DEBUG: after #{@options.add}” end … def process_arguments @lines_to_add = Dir.glob @options.add end 当我添加这样的文件时放: ./script.rb -a /path/* 我总是只得到目录中的第一个文件。 所有的调试输出只显示目录的第一个文件,似乎OptionParser做了一些神奇的解释 有谁知道如何处理这个?

如何在Ruby中有效地连接多个数组?

我只是想在Ruby中连接多个数组,并且找不到令人满意的方法。 示例输入: foo = [1, 2, 3] bar = [4, 5, 6] baz = [7, 8, 9] 预期结果:(不修改现有数组) [1, 2, 3, 4, 5, 6, 7, 8, 9] 我的实际数组要大得多,所以我对一个有效的解决方案很感兴趣。 可能还有三个以上的数组,因此首选短语法。 到目前为止我尝试了什么 foo + bar + baz是显而易见的,它简洁明了。 但它被评估为(foo + bar) + baz 。 换句话说:它创建了一个中间数组[1, 2, 3, 4, 5, 6] ,它在整个操作后被抛弃。 如文档中所述: 在数组上重复使用+=可能效率很低 [*foo, *bar, *baz]基本上内联对大型数组效率不高的元素。 它看起来更像是对我的黑客攻击。 [foo, […]

如何自动创建目录中每个类的实例?

我如何在ruby中创建目录中每个文件中每个类的实例并将其作为数组提供? 先感谢您!

需要帮助最大化多个相似对象中的3个因素并进行适当排序

我需要用任何语言编写算法,根据3个因素对数组进行排序。 我以度假村为例(如Hipmunk)。 假设我想去度假。 我想要最便宜的地方,最好的评论和最吸引人的地方。 但是,显然我无法在所有3中找到#1。 示例(假设有20个重要景点): 度假村 – 答:150美元/晚… 98/100在有利的评论… 20个景点中的18个 度假村B:99美元/晚… 85/100在有利的评论… 20个景点中的12个 度假村C:120美元/晚… 91/100在有利的评论… 20个景点中的16个 度假村B看起来价格最具吸引力,但在其他两个类别中排名第三。 其中,我可以选择度假村C每晚只需21美元,并获得更多的景点和更好的评论。 价格对我来说仍然很重要,但是A度假村拥有出色的评价和众多景点:价值51美元的奢侈品值多少钱吗? 我希望能够填充一个列表,从“从最好到最差”点亮(我引用bc对消费者来说是主观的)。 我如何最大化每个度假村的价值? 我应该为每个因素设置一个权重(即:55%的价格,30%的评论,15%的设施)并得到一组数字的结果并按照这种方式订购? 我是否需要所有酒店的模式,中位数和范围并确定平均价格,并且平均价格附近的酒店是否保持最重? 如果有点混乱,请访问www.hipmunk.com。 他们有一种飞机排序他们称之为痛苦(和我的问题相似的酒店类型),他们将其作为自己使用。 我以度假村为例让我的问题更有意义。 如何将数学运用于这样的问题?