我最近了解到,如果rescue在该行出现问题,您可以使用一行代码(请参阅http://www.rubyinside.com/21-ruby-tricks-902.html提示#21).我有一些代码,看起来像这样:
if obj['key'] && obj['key']['key2'] && obj['key']['key2']['name']
name = obj['key']['key2']['name']
else
name = ''
end
Run Code Online (Sandbox Code Playgroud)
使用该rescue方法,我相信我可以将代码更改为以下内容:
name = obj['key']['key2']['name'] rescue ''
Run Code Online (Sandbox Code Playgroud)
如果在访问哈希的任何级别抛出零异常,它应该被救援抓住并给我'',这就是我想要的.我也可以选择设置名称,nil如果这是所需的行为.
这样做有什么危险吗?我问,因为这看起来好得令人难以置信.我有这么多丑陋的代码,我想摆脱它看起来像第一个代码示例.
我正在构建一个需要安装json gem的gem,以便它能够工作.哪个json gem:json_pure,json-jruby或基于C的json无关紧要.
有没有一种在gemspec中定义它的好方法?这个响应建议为每个版本维护一个完全独立的gem,但似乎必须有更好的方法.
有没有人有这方面的经验?
我应该只使用spec.requirements选项向用户发出他/她需要json gem的通知吗?
我有一个我管理的Plone网站,我想在Disots of robots.txt中添加一些页面.
似乎Plone会自动生成robots.txt文件.我找不到任何方法来修改它.我还尝试将"robots.txt"文件添加到应用的根目录,但它说"robots.txt已保留"
有没有人知道如何用Plone(v3)修改它?
我有一个Rails 2.3.8应用程序,其动作可以从数据库中提取大量数据,并在300-600个部分中呈现它(递归渲染树型结构).对一个请求进行基准测试可以使我的响应时间大约为7秒.
我认为将我的Ruby版本从1.8升级到1.9会给我带来性能提升,但是当我对1.9版本进行基准测试时,我的响应时间大约为9秒(比1.8慢2秒).这对我来说非常令人惊讶.
哪些因素会导致Ruby 1.9执行速度比Ruby 1.8慢?
下面是日志文件的一部分.
Ruby 1.8
Rendered family_index/descendants/_fi_hover (0.5ms)
Rendered family_index/descendants/_descendant (4.6ms)
Rendered search/_search_div (0.1ms)
Rendered family_index/descendants/_fi_hover (0.7ms)
Rendered family_index/descendants/_descendant (4.7ms)
Rendered search/_search_div (0.1ms)
Rendered family_index/descendants/_fi_hover (0.5ms)
Rendered family_index/descendants/_descendant (4.5ms)
Rendered family_index/descendants/_fi_hover (0.5ms)
Rendered family_index/descendants/_descendant (37.9ms)
Rendered family_index/surname_groups/_pedigree (3162.9ms)
Rendered shared/_headers (4.6ms)
Rendered shared/_new_messages (0.6ms)
Rendered shared/_home_logo (1.1ms)
Rendered shared/_login_box (4.0ms)
Rendered shared/_navigation (13.6ms)
Rendered shared/_flash_messages (0.8ms)
Rendered shared/_footer (1.0ms)
Rendered shared/_analytics (0.8ms)
Completed in 4552ms (View: 3352, DB: 147) | 200 OK [http://localhost/family_index/surname_groups/31]
Run Code Online (Sandbox Code Playgroud)
Ruby 1.9
Rendered …Run Code Online (Sandbox Code Playgroud) 我在Web服务器上有一个图像(http://example.com/img.jpg).我在浏览器中打开该图像并将其保存到磁盘.
如果我通过' fs'module(fs.readFileSync)在节点中打开文件,我会得到一个以0xff开头的Buffer,这就是我所期望的.
我希望能够直接从HTTP请求获得相同的结果.我正在使用'request'模块发出请求.
request('http://example.com/img.jpg',function(error, response, body){
//code here
});
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚如何将响应或主体转换为与我从FileSystem获得的等效缓冲区.我错过了什么?
ruby ×3
http ×1
node.js ×1
performance ×1
plone ×1
plone-3.x ×1
rescue ×1
robots.txt ×1
ruby-1.9 ×1
rubygems ×1