标签: ruby

为什么'super'是关键字而不是Ruby中的方法?

在Ruby中,super是关键字而不是方法.

为什么这样设计?

Ruby的设计倾向于尽可能多地实现方法; 关键字通常保留用于具有自己的语法规则的语言功能.super但是,外观和行为就像一个方法调用.

(我知道super在纯Ruby中实现它会很麻烦,因为它必须解析方法名称caller,或者使用trace_func.仅此一项不会阻止它成为一种方法,因为很多内核的方法都是没有在纯Ruby中实现.)

ruby language-design super

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

按年份,按月分组,然后在ActiveRecord 3中计数

我试图计算一年和一个月内创建的所有用户的数量,但以下似乎没有按预期工作.

User.group("YEAR(created_AT), MONTH(created_at)").
     count("DISTINCT(id), YEAR(created_at), MONTH(created_at)")
Run Code Online (Sandbox Code Playgroud)

我正在寻找类似的东西

{2011 => {1 => 222, 2 => 333, 4 => 444, 5 => 667 ... }}
Run Code Online (Sandbox Code Playgroud)

但我得到了

{1 => 222, 2 => 333, 4 => 444, 5 => 667 ... }
Run Code Online (Sandbox Code Playgroud)

我错过了什么,或者ActiveRecord不能在一个查询中给我这个结果?

ruby sql activerecord ruby-on-rails

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

Ruby - open("file_path") - Errno :: ENOENT:没有这样的文件或目录

No such file or directory尝试打开文件时,我不断收到此错误消息.我正在做:

file = open("http://farm7.static.flickr.com/6064/6090089285_242ca0e342_m.jpg")根据ruby-doc并不断收到这样的错误.

我究竟做错了什么?

ruby

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

使用Sinatra开发完整的网站有什么不对吗?

我正在开发一个新网站.该网站的复杂程度将在Yelp.com的订单上.我对Ruby很新,但我决定使用它来开发后端.在这个过程中,我偶然发现了Sinatra.我真的很喜欢Sinatra中路由的简单性,并决定将它作为我开发的起点.似乎大多数地方都说Sinatra非常适合快速开发和"小型网络应用程序".Sinatra是否存在固有的扩展问题,还是因为您基本上必须从头开始构建所有内容而产生的评论?任何关于您使用Sinatra作为大型Web应用程序基础的意见的评论将不胜感激.

我不确定stackoverflow是否是提出这样的意见问题的正确位置,但它是我目前拥有的唯一资源,可以实际获得有关此类内容的反馈.

ruby sinatra web

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

有没有办法阻止Rails的内置服务器默认监听0.0.0.0?

我在不受信任的网络(coffeeshops,邻居的开放式wifi,DEF CON)上进行了大量的网络开发,当随机的,肯定有缺陷的软件(我正在开发的Rails应用程序)绑定0.0.0.0上的端口时,我会感到抽搐.开始接受所有人的请求.我知道我可以使用-b选项指定绑定到服务器的地址,但是我想全局更改默认值,因此它总是以这种方式运行,除非我告诉它.当然我也可以运行某种阻止连接的防火墙,但最好不要先听.是否存在'.railsrc'文件或类似文件 - 至少是每个项目的设置文件,但最好是一些全局设置文件 - 我可以使用它来强制服务器默认只绑定到127.0.0.1?

ruby security networking ruby-on-rails

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

在Rails控制台中使用fixture finder助手

我经常发现我希望能够使用users(:david)Rails控制台中的测试夹具(例如).是否有一个特定的Rails模块,我可以在控制台提示符下加载,或者我可以安装的gem,它会使这些模块可用?

我对谷歌甲骨文的疑问没有改变,所以我没有屏住呼吸,但我希望有人在这里知道一个秘密并愿意分享.

ruby console ruby-on-rails fixtures

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

什么是Enumerator对象?(使用String#gsub创建)

我有一个属性数组如下,

attributes = ["test, 2011", "photo", "198.1 x 198.1 cm", "Photo: Manu PK Full Screen"]
Run Code Online (Sandbox Code Playgroud)

当我这样做时,

artist = attributes[-1].gsub("Photo:")
p artist
Run Code Online (Sandbox Code Playgroud)

我在终端获得以下输出

#<Enumerator: "Photo: Manu PK Full Screen":gsub("Photo:")>
Run Code Online (Sandbox Code Playgroud)

想知道为什么我得到一个枚举器对象作为输出?提前致谢.

编辑:请注意,而不是attributes[-1].gsub("Photo:", ""), I am doing attributes[-1].gsub("Photo:")那么想知道为什么枚举器对象已经返回(我期待一个错误消息)和发生了什么.

Ruby - 1.9.2

Rails - 3.0.7

ruby enumerator

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

在Sinatra中缓存响应的最佳方法?

我正在使用我用Sinatra制作的API来构建一个简单的应用程序,它返回一些JSON.这是相当多的JSON,我的应用程序的API依赖于对其他API的几百个请求.

我可以将结果缓存5天左右,根本没有数据问题.我只是不是100%确定如何实现缓存.我如何与Sinatra一起做这件事?

ruby caching sinatra

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

在Rails 3中运行时加载gem

我有Rails 3.0.x应用程序.我想在运行时加载gem,而不使用Gemfile.

我想要完成的是像往常一样加载我的应用程序,由Bundler加载常规gem.之后我想加载位于特定目录中的所有gem(Rails Engines)(但直到运行时,我不知道那将是什么宝石).

有人知道这是否可以在Rails中使用,也许使用Bundler API?

ruby rubygems ruby-on-rails bundler ruby-on-rails-3

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

在Rails中的事务中包装所有控制器操作

是否可以设置Rails应用程序,以便所有控制器操作都自动用事务包装,如果出现无法解决的异常,它会自动回滚?

我正在开发一个Rails 3应用程序,目前用于进行大量数据库更改的相当棘手的操作.而且我已经弄错了很多次!过了一会儿,我意识到我的代码没有工作,因为我最终得到了数据库中不一致的数据.

我可以很容易地用事务包装它(这是一个明确的实例,需要一个!).然而,它让我想到,至少在开发过程中,将这个想法应用于每个控制器动作都是有用的.

假设有可能,这有什么不利之处吗?

ruby sql transactions ruby-on-rails

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