草庐IT

ruby-on-rails - 在 Ruby 中减去日期并得到以分钟为单位的差异

我如何在Ruby中减去两个不同的UTC日期,然后得到以分钟为单位的差异?谢谢 最佳答案 如果减去两个Date或DateTime对象,结果是一个Rational表示它们之间的天数。你需要的是:a=Date.new(2009,10,13)-Date.new(2009,10,11)(a*24*60).to_i#2880minutes或a=DateTime.new(2009,10,13,12,0,0)-DateTime.new(2009,10,11,0,0,0)(a*24*60).to_i#3600minutes

ruby-on-rails - ActiveRecord 查找以

非常简单的问题-我如何进行搜索以查找名称以ActiveRecord中的特定字符串开头的所有记录。我在互联网上看到过各种使用逐字LIKESQL子句的位-但据我所知,这不是“正确”的做法。是否有“合适的”Rails方法? 最佳答案 如果您希望在数据库中进行搜索,那么您将需要使用SQL。当然,您需要在数据库中进行搜索,否则您需要将所有对象加载到Ruby中(这不是一件好事)。所以,你需要类似的东西MyModel.find(:all,:conditions=>["fieldLIKE?","#{prefix}%"])其中prefix是一个包含您

ruby-on-rails - 如何为 Rails Controller 添加延迟以进行测试?

我正在测试Web应用程序的前端,并想测试在AJAX请求之间的各种延迟下,某些转换是如何出现的。有什么方法可以向我的Controller添加sleep(1500)以延迟响应? 最佳答案 Controller是这样的:defcatalog#Makestherequestpause1.5secondssleep1.5...end更好的是:只为开发环境添加sleep。 关于ruby-on-rails-如何为RailsController添加延迟以进行测试?,我们在StackOverflow上找到

ruby-on-rails - 以 DESC 排序集合

'event',:collection=>@events.sort_by(&:event_at)%>此代码显示按ASC排序的集合,但我想按DESC排序此集合。我怎样才能做到这一点? 最佳答案 如http://guides.rubyonrails.org/active_record_querying.html所述@events.order(event_at::desc) 关于ruby-on-rails-以DESC排序集合,我们在StackOverflow上找到一个类似的问题:

ruby - 如何合并散列数组以获取值数组的散列

这与TurningaHashofArraysintoanArrayofHashesinRuby相反.优雅地和/或高效地将一个散列数组转换为一个散列,其中的值是所有值的数组:hs=[{a:1,b:2},{a:3,c:4},{b:5,d:6}]collect_values(hs)#=>{:a=>[1,3],:b=>[2,5],:c=>[4],:d=>[6]}这段简洁的代码几乎可以工作,但在没有重复项时无法创建数组:defcollect_values(hashes)hashes.inject({}){|a,b|a.merge(b){|_,x,y|[*x,*y]}}endcollect_val

ruby-on-rails - 扩展 Devise SessionsController 以使用 JSON 进行身份验证

我正在尝试为iPhone应用构建一个RailsAPI。Devise可以很好地通过Web界面登录,但我需要能够使用RESTAPI创建和销毁session,我想使用JSON而不是必须在sessionController上执行POST并解析HTML并处理一个重定向。我以为我可以做这样的事情:classApi::V1::SessionsController我在config/routes.rb中添加了:namespace:apidonamespace:v1doresources:sessions,:only=>[:create,:destroy]endendrakeroutes显示路由设置正确:

ruby - 为什么变量名不能以 `?` 结尾,而方法名可以?

方法名可以以问号结尾?defhas_completed?returncount>10end但变量名不能。这是什么原因呢?让变量名也以同样的方式结尾不是很方便吗?鉴于我们通常无法仅通过查看名称foobar来判断foobar是方法还是变量,为什么会出现异常?案例?我应该如何处理它?也许总是在代码中使用has或is?ifprocess_has_completed...endifuser_is_using_console...end 最佳答案 您必须询问Matz才能获得权威答案。然而,Ruby是一种无类型的编程语言,像finished?这样

ruby-on-rails - 如何在 Ruby on Rails 中以编程方式查找命名空间/模块名称?

如何在下面的过滤器中找到namespace或模块“Foo”的名称?classApplicationController 最佳答案 这些解决方案都没有考虑具有多个父模块的常量。例如:A::B::C从Rails3.2.x开始,您可以简单地:"A::B::C".deconstantize#=>"A::B"从Rails3.1.x开始,您可以:constant_name="A::B::C"constant_name.gsub("::#{constant_name.demodulize}",'')这是因为#demodulize与#deconst

ruby-on-rails - 解析字符串以添加到 URL 编码的 URL

给定字符串:"Hellothereworld"如何创建这样的URL编码字符串:"Hello%20there%20world"我还想知道如果字符串也有其他符号该怎么办,比如:"hellothere:world,howareyou"最简单的方法是什么?我打算解析然后为此构建一些代码。 最佳答案 在2019年,URI.encode已过时,不应再使用。require'uri'URI.encode("Hellothereworld")#=>"Hello%20there%20world"URI.encode("hellothere:world,

ruby - 以小时为单位的时差

我正在尝试获取两个不同时间实例的小时差。我从数据库中获取这些值作为:datetime列我怎样才能在忽略或四舍五入分钟的同时在计算中包括月份和年份?这只能手动完成还是有执行此操作的功能? 最佳答案 ((date_2-date_1)/3600).round或((date_2-date_1)/1.hour).round 关于ruby-以小时为单位的时差,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/que