草庐IT

MongoDb 将 $group \'_id\' 空值聚合为不同的

全部标签

ruby - MongoDB:无法从 BSON 类型 EOO 转换为 Date

我正在尝试使用聚合框架(使用ruby​​)并像这样投影日期:db['requests'].aggregate([{"$project"=>{_id:0,method:'$method',user:'$user',year:{'$year'=>'$timestamp'}}}])文档是这样的:{_id:ObjectId("5177d7d7df26358289da7dfd"),timestamp:ISODate("2013-04-12T03:58:05+00:00"),method:"POST",status:"200",inputsize:"874",outputsize:"4981",u

ruby-on-rails - 如何从(YAML)哈希中递归删除所有具有空值的键?

我一直在尝试删除我的YAML文件中所有具有空(空白)值或空哈希作为值的哈希键。这earlierpost帮助我几乎正确地完成了它,但是只要有足够深的嵌套,递归的单行代码就会在我的YAML转储中留下空哈希值。我非常感谢任何帮助。谢谢!proc=Proc.new{|k,v|(v.kind_of?(Hash)&&!v.empty?)?(v.delete_if(&proc);nil):v.blank?}hash={"x"=>{"m"=>{"n"=>{}}},'y'=>'content'}hash.delete_if(&proc)实际输出{"x"=>{"m"=>{}},"y"=>"content"

ruby-on-rails - 了解 Paperclip 中的 id_partition

我正在使用Paperclip在AWS中存储音频文件。文件路径有一个id_partition组件(跨越3个目录)。这个字段是怎么计算的?我希望能够从我的rails模块(或数据库条目)跟踪文件谢谢 最佳答案 回形针id_partition方法将“0”添加到ActiveRecord实例的ID前,使其长度为9个字符。即12将被转换为000000012,然后它简单地将这个字符串分成三个block并用/连接这些block关于id_partition的有趣读物http://37signals.com/svn/archives2/id_partit

ruby-on-rails - 给定有序的 id 列表对对象数组进行排序

我有一组对象@users,每个对象都有其id属性。@users=[#,#]我还有一个有序的ids数组。ids=[2,1]¿是否有一种神奇的方法可以使用该ID列表对集合进行排序?如果可能,不再次调用数据库。谢谢!!! 最佳答案 其实你不需要排序,建立一个中间的索引散列,它是O(n):users_by_id=Hash[@users.map{|u|[u.id,u]}]users_by_id.values_at(*ids)如果您仍想尝试排序方法,Schwartziantransform就足够了:@users.sort_by{|u|ids.i

ruby-on-rails - ruby rails : Use slug instead of id on resource routes

因此,我正在寻找一种解决方案来帮助我使用Rails资源实现以下目标:/admin/articles/:slug/edit相对于/admin/articles/:id/edit我正在寻找Railsresourceroutes而不是其他类型的路线。只是想知道这是否可能。如果是这样,如何? 最佳答案 #config/routes.rbresources:articles,param::slug在终端中:$rakeroutes...articleGET/articles/:slug(.:format)articles#show...

ruby - 在 Ruby 中从 MongoDB 中检索字段的子集

我试图通过在Ruby中进行的查询从MongoDB获取字段的子集,但它似乎不起作用。它不返回任何结果这是ruby代码:coll.find("title"=>'Halo',:fields=>["title","isrc"])#thisdoesn'twork如果我删除字段散列,它会工作,返回包含所有字段的结果coll.find("title"=>'Halo')#thisworks查看mongodb控制台,第一个查询在mongodb服务器上结束,如下所示:{title:"Halo",fields:["title","isrc"]}如果我尝试从mongo客户端控制台进行查询,它会工作,我会得到结

ruby-on-rails - ActionController::UrlGenerationError 缺少必需的键:[:id]

我是ruby​​的新手-尝试使用rails并且我已经尝试做一个简单的注册表单:这是一个错误:Noroutematches{:action=>"show",:controller=>"user"}missingrequiredkeys:[:id]谁能解释一下这到底是什么意思?编辑:我正在学习本教程,仅将帖子更改为用户:http://guides.rubyonrails.org/getting_started.html 最佳答案 form_for应该总是得到一个对象..就像来自Controller的用户#controllerdefnew

ruby-on-rails - 使用 Rails 4 和结构化日志记录,如何将请求 ID 字段添加到日志中?

我正在向Rails4应用程序添加结构化日志记录。使用lograge和logstash-logger如thisarticle中所述,我的东西大部分都在工作。我在向日志添加请求ID时遇到问题。我发现最接近的是将其添加到config/${ENV}.rb:config.log_tags=[:uuid]但这会将请求ID添加到标签列表中,而不是将其添加为命名字段。{"tags":["da76b4be-01ae-4cc4-8d3c-87062ea02cfe"],"host":"services","severity":"DEBUG","@version":"1","@timestamp":"2016

arrays - Ruby:sum 与 inject(:+) 产生不同的结果

我注意到array.sum和array.inject(:+)产生不同的结果。这是什么原因?a=[10,1.1,6.16]a.inject(:+)#=>17.259999999999998a.sum#=>17.26 最佳答案 Array#sum的C实现委托(delegate)给Kahansummationalgorithm当它的一些输入是float时。这个算法......significantlyreducesthenumericalerrorinthetotalobtainedbyaddingasequenceoffinitepre

ruby - 你如何在 Capistrano 中为不同的角色定义不同的相同任务?

我正在使用Capistrano来处理我的部署,我在我的设置中有两个不同的角色-:web和:processing。它们都有通常的:deploy任务,但:restart任务对于两种类型的服务器需要不同。所以我的第一次尝试是这样的:task:restart,:roles=>:webdorun"...webrelatedrestartstuff..."endtask:restart,:roles=>:processingdorun"...processingrelatedrestartstuff..."end这不起作用,因为第二个:restart(对于:processing角色)替换了第一个: