草庐IT

mongodb - 不允许 mongodump 3.2.1 位置参数

全部标签

ruby - 使用 mongodb/mongoid 运行时更改模型

我必须在mongoid模型中添加几个字段,我知道MongoDB没有迁移,但如果我继续而不删除数据库,使rails完全“重新生成”数据库,它不会显示或使用新的领域!去这里最好的方法是什么?有比删除/重新打开mongodb更软的东西吗?提前致谢卢卡 最佳答案 一般来说,应该可以在运行时用新字段更新旧文档。MongoDB中不需要迁移。您可能想编写rake任务以使用新字段和默认值更新旧文档。您可以通过检查那些默认值为nil的新字段来找到这些文档。更新简单风格:如果您使用默认值定义一个新字段,只要您设置了一个新值,就应该始终使用该值:应用程序

ruby-on-rails - 带有 splat 参数的 Rake 任务

我正在尝试创建一个rake任务,它需要一个必需的第一个参数,然后是我想将它们组合到一个数组中的任意数量的附加参数:rakecourse["COURSENAME",123,456,789]我尝试了以下方法,但args[:numbers]只是一个带有123的字符串,而不是所有数字。task:course,[:name,*:numbers]=>:environmentdo|t,args|putsargs#{:name=>"COURSENAME",:numbers=>"123"}end 最佳答案 从rake10.1.0开始,您可以使用Rak

ruby - 调用 super 时参数数量错误

classAdefinitializeprint"Hello!"endendclassB我明白了wrongnumberofarguments(1for0)但是为什么?类B需要一个参数,我给它没问题。类A不需要任何参数,所以我根本没有通过super传递任何东西。 最佳答案 您需要使用super()才能不带参数调用它。Super本身会使用提供给自身的参数(即“名称”)自动调用父级 关于ruby-调用super时参数数量错误,我们在StackOverflow上找到一个类似的问题:

ruby - 为什么我们将 0 作为参数传递给 "exit"?

在艰难地学习ruby这本书中,我找到了退出程序的语法:Process.exit(0)为什么参数0被传递到这里的exit方法中,即使我传递另一个整数或不传递任何参数它都有效?0有什么意义? 最佳答案 这是一个“退出代码”。此退出代码在某些情况下具有特殊含义(参见示例http://tldp.org/LDP/abs/html/exitcodes.html)你可以传递任何你想要的,如果后面的代码没有被捕获,这将没有任何效果。这里的“0”代表“一切正常!” 关于ruby-为什么我们将0作为参数传递

ruby-on-rails - 获取 URL 字符串参数?

我的数据库中有这个URL,在“位置”字段中:http://www.youtube.com/watch?v=xxxxxxxxxxxxxxxxxxx我可以通过@object.location获取,但是如何获取v的值呢?我的意思是,从URL字符串中获取"xxxxxxxxxxxx"? 最佳答案 require'uri'require'cgi'#useURI.parsetoparsetheURLintoitsconstituentparts-host,port,querystring..uri=URI.parse(@object.locati

ruby-on-rails - 我如何从 Ruby 代码连接到 mongodb?

我如何从Ruby代码连接到mongodb? 最佳答案 首先,您必须安装MongoDbgem:geminstallmongo然后运行代码:require'rubygems'#notnecessaryforRuby1.9require'mongo'db=Mongo::Connection.new.db("mydb")#ORdb=Mongo::Connection.new("localhost").db("mydb")#ORdb=Mongo::Connection.new("localhost",27017).db("mydb")

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 - sinatra路由中的几个可选参数

我需要Sinatra路由以下列方式运行:GET/list/20/10#Get20itemswithoffset10GET/list/20#Get20itemswithdefaultoffsetGET/list#Getdefaultnumberofitemswithdefaultoffset我明白,我可能会将值作为查询传递:GET/list?limit=20&offset=10但我想如上所述传递它们。我很确定有一种方法可以向Sinatra/Padrino解释我想做什么,但我目前完全被困住了。我试过:get:list,:map=>'/list',:with=>[:limit,:offset

ruby-on-rails - 使用 get 和 delete 运行 Rspec 测试时获取错误数量的参数(2 个为 0)

这应该是一个简单的问题,就是找不到导致测试失败的原因。运行rspec时,我不断收到以下错误。但是在评论“发送”方法之后,一切正常。1)MessagesGET/messagesworks!(nowwritesomerealspecs)Failure/Error:gettarget_app_messages_path(@message.target_app.id)ArgumentError:wrongnumberofarguments(2for0)#./app/controllers/messages_controller.rb:37:in`send'路线.rbresources:targ

ruby-on-rails - 如何使用 FactoryGirl 发送参数(而不是手动将参数作为散列发送)?

我有以下有效的rspec测试:it"redirectstothecreatedapi_key"dopost:create,:api_key=>{:api_identifier=>"asdfadsf",:verification_code=>"12345"}response.shouldredirect_to(ApiKey.last)#(oranyothertestfunction)end但我使用Factorygirl,所以我不必手动创建api_key。如何复制上述功能,但使用factorygirl?使用:it"redirectstothecreatedapi_key"dotest=Fa