标签: ruby

总结Ruby中哈希数组的值

我无法找出添加一系列哈希的优雅方法

[{:a=>1,:b=>2,:c=>3},{:a=>1,:b=>2,:c=>3},{:a=>1,:b=>2,:c=>3}]
Run Code Online (Sandbox Code Playgroud)

应该回来

[{:a=>3,:b=>6,:c=>9}]
Run Code Online (Sandbox Code Playgroud)

我知道它可能涉及映射/缩减,但我无法弄清楚正确的语法,没有帮助ruby-doc dot org与我的版本不匹配

我使用的是1.8.7

ruby

9
推荐指数
1
解决办法
385
查看次数

在轨道上使用带有红宝石/红宝石的vim的提示和技巧

我是那些没有在任何Ruby/Ruby on Rails工作中使用TextMate的开发人员之一.我在这个舞台上的特殊忠诚在于vim.使用vim与Ruby和/或Ruby on Rails最喜欢的提示/技巧是什么让你在工作时尽可能高效?

ruby vim ruby-on-rails macvim

9
推荐指数
1
解决办法
5837
查看次数

如何从javascript渲染部分

我有一个选择,根据不同选择中的选择进行填充为了做到这一点,我在"动态选择菜单"的Railscast#88中做了推荐.

但是现在我需要渲染一个部分,传入每个选择中选择的值.我无法弄清楚如何简单地从select中的:onchange事件触发方法调用,所以我想我需要在检测选择更改事件的javascript处理程序中调用render:partial.但我无法弄清楚如何.我在javascript方法中尝试了以下内容(在.js.erb文件中),但它没有按预期工作:

function staffSelected() {
    $('date_area').show();
    <% render :partial => "calendar" -%>
}
Run Code Online (Sandbox Code Playgroud)

谁有一个很好的解决方案?

javascript ruby ruby-on-rails

9
推荐指数
2
解决办法
2万
查看次数

将日期解析为Rails友好格式

我有一批100k左右的记录,我正在导入到Rails应用程序.

每行中的日期格式如下: 03/17/81

但是,当我尝试将其分配给日期字段时,它将按如下方式转换:

ruby-1.8.7-p174 > "03/17/81".to_date
 => Sat, 17 Mar 0081 
Run Code Online (Sandbox Code Playgroud)

最终我想要格式化 1981-03-17

这最好是在导入时完成,还是应该覆盖我的Rails配置,将日期标准设置为我需要的格式以及Rails 2.3.5中的正确方法?

ruby formatting datetime ruby-on-rails date-format

9
推荐指数
1
解决办法
8719
查看次数

检查字符串是否是Rails中的全大写字母

我想检查字符串是否是Rails中的所有大写字母.我该怎么做呢?

我正在编写自己的自定义复数辅助方法,我会传递像"WORD"这样的词,有时候会传递"Word" - 我想测试我的单词是否全部为大写所以我可以返回"词语" - 用大写字母"S" "最后,如果这个词是复数(与"WORD"相对).

谢谢!

ruby string ruby-on-rails

9
推荐指数
1
解决办法
7323
查看次数

Factory Girl:自动分配父对象

我刚刚进入工厂女孩,我遇到了一个困难,我肯定应该更容易.我只是无法将文档扭曲成一个有效的例子.

假设我有以下型号:

class League < ActiveRecord::Base
   has_many :teams
end

class Team < ActiveRecord::Base
   belongs_to :league
   has_many :players
end

class Player < ActiveRecord::Base
   belongs_to :team
end
Run Code Online (Sandbox Code Playgroud)

我想要做的是:

team = Factory.build(:team_with_players)
Run Code Online (Sandbox Code Playgroud)

让它为我建立一堆球员.我试过这个:

Factory.define :team_with_players, :class => :team do |t|
   t.sequence {|n| "team-#{n}" }
   t.players {|p| 
       25.times {Factory.build(:player, :team => t)}
   }
end
Run Code Online (Sandbox Code Playgroud)

但这:team=>t部分失败了,因为t它不是真的Team,它是一个Factory::Proxy::Builder.我必须将一个团队分配给一名球员.

在某些情况下,我想建立一个League并让它做类似的事情,创建多个拥有多个玩家的团队.

我错过了什么?

ruby unit-testing ruby-on-rails factory-bot

9
推荐指数
1
解决办法
4205
查看次数

如何用红宝石中的sinatra提供生成的图像

我写了一个简单的Sinatra应用程序,它使用来自某些用户输入的rmagick生成图像.图像以唯一的文件名保存在./public目录中.在Sinatra生成的HTML中使用唯一文件名,以便每个用户获取正确的图像.每天一次脚本删除超过一小时的文件.这显然是一个可怕的黑客,但我没有网络经验!

有没有办法在没有先将它保存到磁盘的情况下在sinatra中提供rmagick图像?

ruby image rmagick sinatra

9
推荐指数
1
解决办法
5191
查看次数

一个仅使用Ruby的网站

我想编写一个Web应用程序,并希望使用Ruby.我现在还不了解Ruby,我想写这个应用程序.学习Ruby.

Ruby是否足以编写Web应用程序或需要包含Rails?

ruby

9
推荐指数
2
解决办法
4791
查看次数

如何随机迭代一个大范围?

我想随机迭代一个范围.每个值只访问一次,最终将访问所有值.例如:

class Array
    def shuffle
        ret = dup
        j = length
        i = 0
        while j > 1
            r = i + rand(j)
            ret[i], ret[r] = ret[r], ret[i]
            i += 1
            j -= 1
        end
        ret
    end
end

(0..9).to_a.shuffle.each{|x| f(x)}
Run Code Online (Sandbox Code Playgroud)

哪个f(x)是对每个值进行操作的函数.一个费雪耶茨洗牌用于有效地提供随机排序.

我的问题是shuffle需要在阵列上操作,这并不酷,因为我正在使用天文数字大的数字.Ruby会快速消耗大量的RAM,试图创建一个怪异的数组.试想一下,替换(0..9)用(0..99**99).这也是以下代码不起作用的原因:

tried = {} # store previous attempts
bigint = 99**99
bigint.times {
    x = rand(bigint)
    redo if tried[x]
    tried[x] = true
    f(x) # some function
} …
Run Code Online (Sandbox Code Playgroud)

ruby random loops range brute-force

9
推荐指数
1
解决办法
3178
查看次数

ruby on rails正则表达式从文本中删除html标签及其内容

我希望在rails上的ruby中使用正则表达式,从而删除给定文本中的所有html标记及其内容.

例如,如果我的文字是:-INPUT: -

<span id="span_is"><br><br><u><i>Hi</i></u></span> 
Run Code Online (Sandbox Code Playgroud)

那么它应该只显示OUTPUT应该如下: -

Hi
Run Code Online (Sandbox Code Playgroud)

总之,我想要正则表达式或删除<>的函数以及<>之间的任何内容.

感谢和问候,

Salil Gaikwad

ruby ruby-on-rails

9
推荐指数
2
解决办法
8057
查看次数