草庐IT

ios - 按翻译后的属性对对象排序

全部标签

ruby - `+` 在 `*` 之后的含义,当后者在正则表达式中用作量词时

今天我遇到了下面的正则表达式,想知道Ruby会用它做什么:>"#a"=~/^[\W].*+$/=>0>"1a"=~/^[\W].*+$/=>nil在这种情况下,Ruby似乎忽略了+字符。如果这是不正确的,我不确定它在做什么。我猜它没有被解释为量词,因为*没有转义并且被用作量词。在Perl/Ruby正则表达式中,有时当一个字符(例如,-)在不能被解释为特殊字符的上下文中使用时,它会被视为文字。但如果在这种情况下发生这种情况,我希望第一个匹配失败,因为左值字符串中没有+。这是对+字符的巧妙正确使用吗?以上行为是错误吗?我是否遗漏了一些明显的东西? 最佳答案

ruby-on-rails - 使用 STI 为 rails 中的子模型指定唯一属性

我计划将STIinRails与以下模型一起使用:classPromoEvent和Discount在属性方面仅存在一些差异,因此我认为STI是一个不错的选择。我不确定如何确保,例如,仅Event具有额外的image_filename属性。我知道它会在promos表中,并且它必须是NULL-able以防我插入Discount行。如何确保Discount对象对image_filename属性一无所知(即未在Discount.column_names中列出>和/或无法设置它)Event知道它吗? 最佳答案 我认为这个概念是不同的,而你的Pr

ruby-on-rails - 如何在 RubyOnRails 中使用 'acts as nested set' 创建一个可排序的接口(interface)

我一直在为使用acts_as_list的模型实现一些不错的交互界面,这些界面可以对我的mRails应用程序中的列表进行排序。我有一个排序函数,在每次拖放之后使用sortable_elementscript.aculo.us函数调用并设置每条记录的位置。这是在拖放完成后处理排序的Controller操作示例:defsortparams[:documents].each_with_indexdo|id,index|Document.update_all(['position=?',index+1],['id=?',id])endend现在我正在尝试对嵌套集模型(acts_as_nested

ruby - 如何使用 ruby​​ fibers 避免阻塞 IO

我需要将目录中的一堆文件上传到S3。由于上传所需的90%以上的时间都花在了等待http请求完成上,所以我想以某种方式同时执行其中的几个。Fibers能帮我解决这个问题吗?它们被描述为解决此类问题的一种方法,但我想不出在http调用阻塞时我可以做任何工作的任何方法。有什么方法可以在没有线程的情况下解决这个问题? 最佳答案 我没有使用1.9中的纤程,但是1.8.6中的常规线程可以解决这个问题。尝试使用队列http://ruby-doc.org/stdlib/libdoc/thread/rdoc/classes/Queue.html查看文

ruby - 如何从 ruby​​ 中的 IO 对象获取文件名

在ruby中...我有一个由外部进程创建的IO对象,我需要从中获取文件名。然而我似乎只能得到文件描述符(3),这对我来说不是很有用。有没有办法从此对象获取文件名甚至获取文件对象?我正在从通知程序中获取IO对象。所以这也可能是获取文件路径的一种方式? 最佳答案 关于howtogetathefilenameinC也有类似的问题,我将在这里以ruby​​的方式给出这个问题的答案。在Linux中获取文件名假设io是您的IO对象。以下代码为您提供了文件名。File.readlink("/proc/self/fd/#{io.fileno}")例

ruby - Ruby 的排序方法如何与组合比较(宇宙飞船)运算符一起工作?

这里是初级程序员,只是想了解Ruby背后的过程sort使用飞船操作符时的方法.希望有人能帮忙。在以下内容中:array=[1,2,3]array.sort{|a,b|ab}...我明白sort一次比较一对数字,然后返回-1如果a属于b之前,0如果它们相等,或者1如果a应该遵循b.但是在降序排序的情况下,像这样:array.sort{|a,b|ba}...到底发生了什么?是否sort还是比较ab然后翻转结果?或者它是在解释return的-1,0和1具有相反的行为?换句话说,为什么要像这样将变量放在block中:array.sort{|b,a|ba}...结果与第一个示例中的排序模式相同?

ruby - ActiveRecord - 在连接模型中查找具有共享属性的所有对象

我有三个模型classBoat我正在尝试编写一个简单的ActiveRecord查询来查找所有帆船类型的船。类似于Boat.where(classifications:"Sailboat") 最佳答案 我认为这可行:Boat.joins(:classifications).where(classifications:{name:'Sailboat'})#nameorwhateverfieldcontainsSailboat生成此查询:SELECT`boats`.*FROM`boats`INNERJOIN`boat_classifica

ruby - 基于多个键/值对的自定义哈希排序数组

我有一个哈希数组,我需要根据两个不同的键值对对其进行排序。这是我要排序的数组:array_group=[{operator:OR,name:"somestring",status:false},{operator:AND,name:"otherstring",status:false},{operator:_NOT_PRESENT,name:"anotherstring",status:true},{operator:AND,name:"juststring",status:true}]我想对array_group进行排序,所以我首先有status:true的项目,然后是status:

ruby-on-rails - Ruby on Rails - 在 ':include =>' 上添加条件以加载有限数量的对象

我有两个模型用户和事件。基数是一个用户有很多事件。当我查询数据库以提供所有用户及其相应事件时,它会返回正确的结果。示例语句:Users.find(:all,:include=>[:events])但是,我需要帮助的是根据条件为用户获取事件。我需要返回的每个用户只获取今天安排的事件(例如:CREATED_DATE=TODAY)。也就是说,我不希望所有事件都与用户关联。也就是说,我仍然需要在数据库中找到的所有用户,但对于今天没有安排事件的一些用户,他们不应该在HashMap中加载事件。有人可以帮我修改“Users.find(:all,:include=>[:events])”Rails语句

ruby - 对 Ruby 对象进行版本控制

我有一系列建模底层XML(如OXM)的Ruby对象。不幸的是,XML正在更改并且相应的版本正在发生变化。我需要更新我的Ruby对象才能处理这两个版本。我想要比我的方法中的大量if/else子句更干净的东西,因为这很可能再次发生。是否有惯用的Ruby方法来处理这个问题?我正在考虑使用基类作为各种“版本化”类的代理,即classXMLModelclassV1#V1specificimplementationendclassV2;#V2specificimplementationenddefinitialize#createanewV?andsetupdelegationtothatspec