草庐IT

锦标赛排序(树形选择排序)

全部标签

ruby - 按值对 Hash of Hashes 进行排序(并返回哈希,而不是数组)

我有以下哈希:user={'user'=>{'title'=>{'weight'=>1,....}'body'=>{'weight'=>4,....}........}}是否可以让用户按其子哈希的权重键排序?我查看了Hash.sort,但看起来它返回的是数组而不是我原来的哈希排序。 最佳答案 在Ruby1.9中,Hashes被排序,但是Hash#sort仍然返回Array的Array秒。想象一下!它确实意味着您可以在此基础上构建自己的排序方法。classHashdefsorted_hash(&block)self.class[sor

ruby - 是否可以根据单个对象对方法的响应对对象列表进行排序?

我想显示一个产品的画廊,其中包括待售和非待售产品。只是我想让待售的产品出现在列表的前面,而不是待售的对象出现在列表的末尾。我实现此目的的一种简单方法是制作两个列表,然后合并它们(一个列表是on_sale?对象,另一个列表是非on_sale?对象):available_products=[]sold_products=[]@products.eachdo|product|ifproduct.on_sale?available_products...但是对于我现有应用程序的结构来说,由于我的代码中有一个奇怪的地方,这将需要过多的重构(我失去了分页,我宁愿不重构)。如果有一种方法可以通过我的

ruby-on-rails - capybara :查找(元素)使用选择器来定位复杂的属性名称

使用cucumber和capybara测试Rails应用。假设我无法更改标记,我可以使用capybara在充满类似td和select的页面中选择以下选择吗?LanguagesCommunication这似乎失败了(我假设是因为嵌套的“[”和“]”)。find("select[name=attributes[ruby][category]]")转义也不行。想法? 最佳答案 您可以尝试find('select',:name=>'attributes[ruby][category]')或find_field('attributes[rub

ruby-on-rails - Ruby 排序依据(整数) "comparison of NilClass with 3200 failed"

我想在Rails应用程序中对我的记录进行排序:@ebms=Ebm.all@ebms.sort_by!{|u|u.number}u.number被定义为整数!问题是Rails无法将它与nil进行比较:comparisonofNilClasswith32400failed我该怎么做才能避免这个错误? 最佳答案 尝试将nil转换为整数怎么样?@ebms=Ebm.all@ebms.sort_by!{|u|u.number.to_i} 关于ruby-on-rails-Ruby排序依据(整数)"co

ruby-on-rails - Rails 3. 按关联模型排序

假设我有两个模型:Course和ScheduledCourse。类(class)模型有一个名称属性。coursehas_many:预定类(class)scheduled_courses:属于类(class)coursesid|name1|biology2|history3|chemistry4|literaturescheduled_coursesid|course_id1|22|43|14|2如何进行ActiveRecord查询以按字母顺序对安排的类(class)进行排序? 最佳答案 尝试...ScheduledCourse.jo

ruby-on-rails - Ruby 中的 Podium 样式排序

鉴于我有哈希数组,我怎样才能将它们排序(使用ruby​​)为podium样式(使用它们的created_at值),如下图所示?[{created_at:"DATETIME",src:"..."},{created_at:"DATETIME",src:"..."},{created_at:"DATETIME",src:"..."},{created_at:"DATETIME",src:"..."}] 最佳答案 arr.sort_by{|a|a['created_at']}.inject([]){|r,e|r.reverse有趣的问题!

ruby-on-rails - 如何在 Ruby 中创建自定义排序方法

我想指定一个自定义block方法,通过评估两个属性对对象数组进行排序。然而,经过多次搜索,我没有找到任何没有的例子。运营商。我要比较a至b:ifa.xlessthanb.xreturn-1ifa.xgreaterthanb.xreturn1ifa.xequalsb.x,thencomparebyanotherproperty,likea.yvsb.y这是我的代码,它不起作用:ar.sort!do|a,b|ifa.xb.xreturn1elsereturna.yb.yend这个block在一个函数内return正在退出函数并返回-1. 最佳答案

ruby - 为什么排序或宇宙飞船(飞碟)运算符 (<=>) 在 Ruby 中不能处理 bool 值?

在“Isitpossibletosortalistofobjectsdependingoniftheindividualobject'sresponsetoamethod?”中,我发现飞碟对bool值不起作用。考虑:ruby1.8.7:[true,false].sort#=>undefinedmethod`'fortrue:TrueClass(NoMethodError)truefalse#=>undefinedmethod`'fortrue:TrueClass(NoMethodError)ruby1.9.3:[true,false].sort#=>comparisonofTrueCl

ruby - 在 Ruby 中对数组的一部分进行排序

我有一个ruby​​数组,我想对从索引i开始到索引j的所有元素进行排序。不应修改数组的其余部分。我该如何实现? 最佳答案 您可以使用a[i,j]=a[i,j].sort!从索引i排序索引j.示例:a=[8,7,5,4,3]a[2..4]=a[2..4].sort!a#=>[8,7,3,4,5] 关于ruby-在Ruby中对数组的一部分进行排序,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/quest

ruby-on-rails - Ruby/Rails 中的整数排序

我正在寻找一种在Ruby/Rails中处理整数序号的方法,即。“st”、“nd”、“rd”和“th”是整数的后缀。RubyonRails曾经使用“ordinalize”方法扩展FixNum,但该功能似乎在版本3中已被弃用。我目前只是在使用旧Rails方法的源代码,这很好......但这似乎是大多数脚本语言/网络框架内置的功能,我觉得Rails背后的人一定有弃用该功能的原因(也许它现在在Ruby中可用?)。请指教! 最佳答案 你要的方法还是ordinalize.Active_Support进行了一些重构以提供更好的粒度。您可以根据需要