标签: ruby

如何在运行时找到方法的定义?

我们最近遇到了一个问题,即在发生一系列提交后,后端进程无法运行.现在,我们都是优秀的小男孩和女孩,并rake test在每次办理登机手续后都跑了,但由于Rails图书馆装载中的一些奇怪现象,它只发生在我们直接从生产模式中的Mongrel运行时.

我追踪了这个错误,这是因为一个新的Rails gem以一种破坏运行时Rails代码中一个狭隘用法的方式覆盖了String类中的一个方法.

无论如何,长话短说,有没有办法在运行时询问Ruby在哪里定义了一个方法?这样的whereami( :foo )回归/path/to/some/file.rb line #45?在这种情况下,告诉我它是在类String中定义的将是无益的,因为它被某些库重载.

我不能保证源代码存在于我的项目中,因此grepping 'def foo'不一定会给我我需要的东西,更不用说我是否有很多东西 def foo,有时候直到运行时我才知道我可能正在使用哪一个.

ruby methods runtime ruby-on-rails definition

325
推荐指数
7
解决办法
8万
查看次数

如何将ruby哈希对象转换为JSON?

如何将ruby哈希对象转换为JSON?所以我在下面尝试这个例子它不起作用?

我在看RubyDoc,显然Hash对象没有to_json方法.但我正在阅读Rails支持active_record.to_json并支持的博客hash#to_json.我可以理解ActiveRecord是一个Rails对象,但Hash它不是Rails本机的,它是一个纯Ruby对象.所以在Rails中你可以做一个hash.to_json,但不是纯粹的Ruby?

car = {:make => "bmw", :year => "2003"}
car.to_json
Run Code Online (Sandbox Code Playgroud)

ruby json ruby-on-rails hashmap

320
推荐指数
4
解决办法
27万
查看次数

什么"WARN无法确定响应主体的内容长度." 意思是如何摆脱它?

自从升级到Rails 3.1后,我在开发日志中看到了这条警告消息:

警告无法确定响应正文的内容长度.设置响应或集的内容长度Response#chunked = true

这是什么意思,我该如何删除它?这是个问题吗?

ruby ruby-on-rails webrick

320
推荐指数
7
解决办法
7万
查看次数

处理货币/货币的最佳方法是什么?

我正在研究一个非常基本的购物车系统.

我有一个items具有price类型列的表integer.

我无法在包括欧元和美分在内的价格中显示价格值.就Rails框架中的处理货币而言,我是否遗漏了一些明显的东西?

ruby currency ruby-on-rails

316
推荐指数
7
解决办法
18万
查看次数

Ruby &ers冒号快捷方式

可能重复:
map(&:name)在Ruby中意味着什么?

在Ruby中,我知道如果我这样做:

some_objects.each(&:foo)
Run Code Online (Sandbox Code Playgroud)

它是一样的

some_objects.each { |obj| obj.foo }
Run Code Online (Sandbox Code Playgroud)

也就是说,&:foo创建块{ |obj| obj.foo },将其转换为Proc,并将其传递给每个块.为什么这样做?它只是一个Ruby特例,还是有理由为什么这样做呢?

ruby

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

在Ruby中,如何跳过.each循环中的循环,类似于'continue'

在Ruby中,如何在循环中跳过.each循环,类似于continue其他语言?

ruby iteration syntax loops

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

Ruby中的枚举

在Ruby中实现枚举习惯的最佳方法是什么?我正在寻找一些我可以使用(几乎)像Java/C#枚举的东西.

ruby enums

312
推荐指数
11
解决办法
17万
查看次数

如何使用Ruby on Rails解析JSON?

我正在寻找一种简单的方法来解析JSON,提取一个值并将其写入Rails中的数据库.

特别是我正在寻找的是一种shortUrl从bit.ly API返回的JSON中提取的方法:

{
  "errorCode": 0,
  "errorMessage": "",
  "results":
  {
    "http://www.foo.com":
    {
       "hash": "e5TEd",
       "shortKeywordUrl": "",
       "shortUrl": "http://bit.ly/1a0p8G",
       "userHash": "1a0p8G"
    }
  },
  "statusCode": "OK"
}
Run Code Online (Sandbox Code Playgroud)

然后使用shortUrl并将其写入与long URL关联的ActiveRecord对象.

这是我完全可以在概念中思考的事情之一,当我坐下来执行时,我意识到我有很多需要学习的东西.

ruby json ruby-on-rails

310
推荐指数
8
解决办法
28万
查看次数

从Ruby中删除数组中的重复元素

我有一个包含重复元素的Ruby数组.

array = [1,2,2,1,4,4,5,6,7,8,5,6]
Run Code Online (Sandbox Code Playgroud)

如何在不使用for循环和迭代的情况下保留所有唯一元素的同时从此数组中删除所有重复元素?

ruby arrays ruby-on-rails duplicates

307
推荐指数
6
解决办法
20万
查看次数

在Ruby中获取system()调用的输出

如果我在Ruby中使用Kernel#system调用命令,我该如何获得它的输出?

system("ls")
Run Code Online (Sandbox Code Playgroud)

ruby system call

303
推荐指数
13
解决办法
25万
查看次数