Tag: ruby

如何在Ruby中返回一个数组的一部分?

用Python中的列表,我可以使用下面的代码返回它的一部分: foo = [1,2,3,4,5,6] bar = [10,20,30,40,50,60] half = len(foo) / 2 foobar = foo[:half] + bar[half:] 由于Ruby在数组中做了所有事情,我不知道是否有类似的东西。

Ajax请求如何处理Rail的Flash?

我很满意我提出的解决scheme 。 基本上,我有一个辅助方法,重新加载Flash内联,然后我有一个after_filter清除闪光灯,如果请求是xhr。 有没有人有比这更简单的解决scheme? 更新:上面的解决scheme写回到Rails 1.x,不再支持。

带参数的before_filter

我有一个这样的方法: before_filter :authenticate_rights, :only => [:show] def authenticate_rights project = Project.find(params[:id]) redirect_to signin_path unless project.hidden end 我也想在其他一些控制器中使用这个方法,所以我把这个方法复制到application_controller中包含的帮助器中。 问题是,在一些控制器中,项目的id不是:id符号,但fe :project_id (还有一个:id存在(对于另一个模型) 你将如何解决这个问题? 有没有一个选项来添加一个参数到before_filter行动(传递正确的参数)?

Ruby / Rails中的“前”date/时间函数

我想知道是否有方法在Rails中计算时间戳 – 半分钟前,2分钟前,1天前等。像Twitter的实时date戳。 我想知道如果Ruby / Rails有这样的date时间转换的内置function?

在Ruby块中使用“返回”

我正在尝试将Ruby 1.9.1用于embedded式脚本语言,以便将“最终用户”代码写入Ruby块中。 与此相关的一个问题是,我希望用户能够在块中使用“返回”关键字,所以他们不需要担心隐式返回值。 考虑到这一点,这是我希望能够做的事情: def thing(*args, &block) value = block.call puts "value=#{value}" end thing { return 6 * 7 } 如果我在上面的例子中使用'return',我得到一个LocalJumpError。 我知道这是因为有问题的块是Proc而不是lambda。 代码的作品,如果我删除“返回”,但我真的希望能够在这种情况下使用“返回”。 这可能吗? 我已经尝试将块转换为lambda,但结果是相同的。

返回Ruby正则expression式的第一个匹配

我正在寻找一种方法来在Ruby中对string进行正则expression式匹配,并在第一次匹配时将其短路。 我正在处理的string很长,看起来像标准方式( match方法)将处理整个事情,收集每个匹配,并返回包含所有匹配的MatchData对象。 match = string.match(/regex/)[0].to_s

在Ruby脚本中运行命令行命令

有没有办法通过Ruby运行命令行命令? 我正在尝试创build一个小的Ruby程序,通过命令行程序(如“screen”,“rcsz”等)拨出和接收/发送。 如果我可以将所有这些与Ruby(MySQL后端等)绑定在一起,

如何从两个相同大小的数组中构build一个Ruby哈希?

我有两个数组 a = [:foo, :bar, :baz, :bof] 和 b = ["hello", "world", 1, 2] 我想要 {:foo => "hello", :bar => "world", :baz => 1, :bof => 2} 任何方式来做到这一点?

如何find最大值散列的关键?

我有以下散列{"CA"=>2, "MI"=>1, "NY"=>1} 如何使用ruby返回最大键值对? 我希望它返回“CA”

在Ruby on Rails中获取主机名或IP

我正在维护一个Ruby on Rails应用程序,并且正在寻找一种简单的方法来查找我所在的主机名或IP地址(因为它是一个虚拟机,新的实例可能有不同的主机名或IP地址) 。 在Ruby on Rails中有没有一种简单快捷的方法? 编辑:下面的答案是正确的,但澄清克雷格提供的是有用的(另见答案中提供的链接): 下面的代码不会build立连接或发送任何数据包(到64.233.187.99这是谷歌)。 由于UDP是一个无状态协议,connect()只是进行一个系统调用,它根据地址和应该绑定的接口(以及IP地址)计算出如何路由数据包。 addr()返回一个包含系列(AF_INET),本地端口和本地地址(这是我们想要的)套接字的数组。