草庐IT

通过预热来优化PostgreSQL的查询

全部标签

ruby - Ruby 中的“通过引用传递参数”?

在Ruby中,是否可以通过引用传递具有值类型语义的参数(例如Fixnum)?我正在寻找类似于C#的“ref”关键字的内容。例子:deffunc(x)x+=1enda=5func(a)#thisshouldbesomethinglikefunc(refa)putsa#shouldread'6'顺便说一句。我知道我可以使用:a=func(a) 最佳答案 您可以通过显式传入当前绑定(bind)来完成此操作:deffunc(x,bdg)eval"#{x}+=1",bdgenda=5func(:a,binding)putsa#=>6

ruby - 我可以或应该通过 ruby​​ 中的 object_id 属性找到一个对象吗?

当我创建一个新对象时,假设o=Object.new这个对象有一个id,o.object_id#=>########我还使用Object类制作了其他几个对象。使用object_id属性让ruby​​找到对象“o”的最佳方法是什么?我在想类似的事情search_id=o.object_idsearch_result=Object.find(search_id)其中“search_results”是对应于“search_id”的对象。此外,我肯定会欣赏一种完全不同的方法来索引对象并通过guid或其他方式检索它们。非常感谢!哈,好吧,我想我真的只需要在数据库的上下文中考虑这个问题,只需使用My

ruby-on-rails - PostgreSQL gem pg 无法安装

我的数据库是PostgreSQL。我在CENTOS上...。在安装pggem时,我收到以下错误。我也重新安装以清除我的YAML问题,但没有用,但这只是一个警告。我的主要问题是pggem的安装:[root@vdimc04~]#geminstallpg/usr/local/lib/ruby/1.9.1/yaml.rb:56:in`':Itseemsyourrubyinstallationismissingpsych(forYAMLoutput).Toeliminatethiswarning,pleaseinstalllibyamlandreinstallyourruby.Buildingn

ruby-on-rails - 将参数值传递给 redirect_to 作为 rails 中的查询字符串

这应该很简单,但我似乎找不到简单的答案。如何将当前请求的参数值传递到redirect_to调用中?我有一些表单值想传递到GET重定向的查询字符串中我想做这样的事情:redirect_to@thing,:foo=>params[:foo]并发送到:http://things/4?[foo][key1]=val1&[foo][key2]=val2谢谢!此外-对于redirect_to:back如何处理?redirect_to:back,:foo=>params[:foo] 最佳答案 redirect_to的“记录”形式仅将第二个参数用于

通过 Mac Ports 在 Mac OSX 上使用 Ruby

我是Ruby和MacOSX的新手,但我对Unix命令有相当多的经验。我刚刚通过MacPorts命令(portinstallruby​​19)安装了Ruby1.9。然后,我需要从根目录中进行查找,以确定它去了哪里,结果是:/opt/local/var/macports/software/ruby19/1.9.1-p376_0/opt/local/bin/ruby1。9.当前版本的Ruby(1.8.6)通过/usr/bin/ruby运行,它是/System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby的符号链

ruby - 如何通过数字索引获取哈希值

有一个散列:h={:a=>"val1",:b=>"val2",:c=>"val3"}我可以引用哈希值:h[:a],h[:c]但我想通过数字索引来引用:h[0]=>val1h[2]=>val3这可能吗? 最佳答案 h.values会给你一个请求的数组。>h.values#⇒[#[0]"val1",#[1]"val2",#[2]"val3"#]UPD虽然h[h.keys[0]]的答案被标记为正确,但我对基准测试有点好奇:h={:a=>"val1",:b=>"val2",:c=>"val3"}Benchmark.bmdo|x|x.repo

ruby-on-rails - 通过闪存传递错误信息

在重定向时推送错误消息的最佳方式是什么?我以前使用过几种方法,但它们都有问题。(1)在flash上传递错误的整个对象并使用error_messages_for:defdestroyif@item.destroyflash[:error_item]=@itemendredirect_tosome_other_controller_pathend我发现这个方法会导致cookie溢出。(2)传递单个错误信息:defdestroyif@item.destroyflash[:error]=@item.full_messages[0]endredirect_tosome_other_control

ruby-on-rails - 升级到 Yosemite 10.10 后无法连接到 postgresql 数据库

更新到Yosemite10.10后,我无法连接到我的postgresql数据库。我运行Rails控制台并尝试获取第一个用户,但出现此错误...>➜game_golfgit:(master)✗railsc>Loadingdevelopmentenvironment(Rails4.1.4)>[1]pry(main)>User.first>PG::ConnectionBad:couldnotconnecttoserver:Connectionrefused>Istheserverrunningonhost"localhost"(::1)andaccepting>TCP/IPconnectio

sql - 通过关联的 Rails 查询仅限于最近的记录?

classUserhas_many:books我需要一个返回的查询:最近一本书具有:complete=>true的用户。即,如果用户最近的书有:complete=>false,我不希望它们出现在我的结果中。到目前为止我有什么User.joins(:books).merge(Book.where(:complete=>true))这是一个很有希望的开始,但没有给我需要的结果。我试过添加.order("created_ondesc").limit(1)到上述查询的末尾,但是当我期待很多结果时,我最终只得到一个结果。谢谢! 最佳答案 如果

ruby-on-rails - Rails ActiveRecord 查询日期范围

我正在尝试在我的Controller中使用以下行来捕获从当前日期起不到一周的所有任务:@due_this_week=current_user.tasks.where(due_date:Date.today..1.week.from_now)出于某种原因,它没有找到任何结果,即使我知道我有四到六天的任务到期。这是唯一使用范围查询的实例变量。我有另一个可以很好地查找逾期任务的工具:@overdue=current_user.tasks.where("due_date我错过了什么? 最佳答案 应该是:@due_this_week=curr