为什么这样设计?
Ruby的设计倾向于尽可能多地实现方法; 关键字通常保留用于具有自己的语法规则的语言功能.super但是,外观和行为就像一个方法调用.
(我知道super在纯Ruby中实现它会很麻烦,因为它必须解析方法名称caller,或者使用trace_func.仅此一项不会阻止它成为一种方法,因为很多内核的方法都是没有在纯Ruby中实现.)
我试图计算一年和一个月内创建的所有用户的数量,但以下似乎没有按预期工作.
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不能在一个查询中给我这个结果?
No such file or directory尝试打开文件时,我不断收到此错误消息.我正在做:
file = open("http://farm7.static.flickr.com/6064/6090089285_242ca0e342_m.jpg")根据ruby-doc并不断收到这样的错误.
我究竟做错了什么?
我正在开发一个新网站.该网站的复杂程度将在Yelp.com的订单上.我对Ruby很新,但我决定使用它来开发后端.在这个过程中,我偶然发现了Sinatra.我真的很喜欢Sinatra中路由的简单性,并决定将它作为我开发的起点.似乎大多数地方都说Sinatra非常适合快速开发和"小型网络应用程序".Sinatra是否存在固有的扩展问题,还是因为您基本上必须从头开始构建所有内容而产生的评论?任何关于您使用Sinatra作为大型Web应用程序基础的意见的评论将不胜感激.
我不确定stackoverflow是否是提出这样的意见问题的正确位置,但它是我目前拥有的唯一资源,可以实际获得有关此类内容的反馈.
我在不受信任的网络(coffeeshops,邻居的开放式wifi,DEF CON)上进行了大量的网络开发,当随机的,肯定有缺陷的软件(我正在开发的Rails应用程序)绑定0.0.0.0上的端口时,我会感到抽搐.开始接受所有人的请求.我知道我可以使用-b选项指定绑定到服务器的地址,但是我想全局更改默认值,因此它总是以这种方式运行,除非我告诉它.当然我也可以运行某种阻止连接的防火墙,但最好不要先听.是否存在'.railsrc'文件或类似文件 - 至少是每个项目的设置文件,但最好是一些全局设置文件 - 我可以使用它来强制服务器默认只绑定到127.0.0.1?
我经常发现我希望能够使用users(:david)Rails控制台中的测试夹具(例如).是否有一个特定的Rails模块,我可以在控制台提示符下加载,或者我可以安装的gem,它会使这些模块可用?
我对谷歌甲骨文的疑问没有改变,所以我没有屏住呼吸,但我希望有人在这里知道一个秘密并愿意分享.
我有一个属性数组如下,
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
我正在使用我用Sinatra制作的API来构建一个简单的应用程序,它返回一些JSON.这是相当多的JSON,我的应用程序的API依赖于对其他API的几百个请求.
我可以将结果缓存5天左右,根本没有数据问题.我只是不是100%确定如何实现缓存.我如何与Sinatra一起做这件事?
我有Rails 3.0.x应用程序.我想在运行时加载gem,而不使用Gemfile.
我想要完成的是像往常一样加载我的应用程序,由Bundler加载常规gem.之后我想加载位于特定目录中的所有gem(Rails Engines)(但直到运行时,我不知道那将是什么宝石).
有人知道这是否可以在Rails中使用,也许使用Bundler API?
是否可以设置Rails应用程序,以便所有控制器操作都自动用事务包装,如果出现无法解决的异常,它会自动回滚?
我正在开发一个Rails 3应用程序,目前用于进行大量数据库更改的相当棘手的操作.而且我已经弄错了很多次!过了一会儿,我意识到我的代码没有工作,因为我最终得到了数据库中不一致的数据.
我可以很容易地用事务包装它(这是一个明确的实例,需要一个!).然而,它让我想到,至少在开发过程中,将这个想法应用于每个控制器动作都是有用的.
假设有可能,这有什么不利之处吗?
ruby ×10
sinatra ×2
sql ×2
activerecord ×1
bundler ×1
caching ×1
console ×1
enumerator ×1
fixtures ×1
networking ×1
rubygems ×1
security ×1
super ×1
transactions ×1
web ×1