草庐IT

relative_order

全部标签

ruby 哈希 : ordering a hash based on the values (which are arrays of values)

我希望根据散列中值的重新排序返回一个新的散列。这些值本身就是整数数组。例如:hsh={"c2"=>[44,2],"c1"=>[11,33],"c9"=>[23,7]}我希望能够根据值中的值0或值1返回重新排序的哈希。非常感谢这里的任何帮助-谢谢大家。 最佳答案 从问题的性质来看,我认为这是针对ruby​​1.9的。pHash[hsh.sort_by{|k,v|v[0]}]#=>{"c1"=>[11,33],"c9"=>[23,7],"c2"=>[44,2]}pHash[hsh.sort_by{|k,v|v[1]}]#=>{"c2"=

ruby-on-rails - Ruby on Rails 中的 HAML 能否以 "ordered hash"方式输出 HTML 属性?

例如,如果使用haml:%html{'xmlns'=>"http://www.w3.org/1999/xhtml",'xmlns:og'=>"http://ogp.me/ns#",'xmlns:fb'=>"http://www.facebook.com/2008/fbml"}输出是:顺序不同。有没有办法按照指定的顺序制作它?(它使用Ruby1.9.2和Rails3.0.6)更新1:虽然在HTML中,属性的顺序并不重要,但在某些情况下,我只想遵循规范所说的。谁知道他们的解析器做了什么以及它是否使用一些正则表达式来做一些遵循规范的人会匹配的事情,但不遵循规范的人将不匹配,因为他们使用正则表

ruby - #<ActiveRecord::Relation:0x007f8da82da248> 的未定义方法 `user_id'

我在此处代码的第2行出错,我在Estate表中有一列user_id。我在这里做错了什么?myestate=Estate.where(:Mgmt=>current_user.Company)@managements=User.where(:id=>myestate.user_id) 最佳答案 where返回ActiveRecord::Relation目的。因为where(:mgmt=>current_user.company)可能返回0、1或许多记录,所以您必须告诉查询您想要从中得到什么。尝试:myestate=Estate.wher

ruby - `require` 可以替换为 `require_relative` 吗?

鉴于require_relative接受相对路径和绝对路径,是否有任何理由特别使用仅接受绝对路径的require?能不能把所有的require都换成require_relative?编辑SergioTulentsev注意到我require_relative不能用于gem。为什么会这样设计?如果require_relative只是require的超集并且require被弃用,会出现什么问题?还是因为require_relative出现的时间晚于gems被纳入Ruby核心系统的时间,而require_relative的作者并没有对gems系统周围的代码做修改?

ruby-on-rails - PGError : ERROR: relation "delayed_jobs" does not exist (Postgresql, rails 3.04,delayed_job 错误)

我做了rakedb:create然后rakedb:migrate遇到了这个错误。rakeaborted!PGError:ERROR:relation"delayed_jobs"doesnotexistLINE4:WHEREa.attrelid='"delayed_jobs"'::regclass^:SELECTa.attname,format_type(a.atttypid,a.atttypmod),d.adsrc,a.attnotnullFROMpg_attributeaLEFTJOINpg_attrdefdONa.attrelid=d.adrelidANDa.attnum=d.ad

ruby-on-rails - 升级到 Rails 3.2.2 : How to solve the 'undefined method for Syck::DomainType' error related to the Delayed Job gem?

我正在从3.1.0开始运行RubyonRails3.2.2。我有问题undefinedmethodsend_register_email\'for#\n//.rvm/gems/ruby-1.9.2-p290/gems/delayed_job-3.0.1/lib/delayed/performable_mailer.rb:6:inperform...使用许多其他人尝试解决的DelayedJobgem:有人成功地解决了这个问题,其他人则没有。如果我尝试了我在网上找到的所有解决方案,我属于后一类。此时,在我的Gemfile中我有:gem'rails','3.2.2'gem"rake"...g

ruby-on-rails - 雷和 order_by

所以我列出了我站点的所有成员并按名称对他们进行分组,以便更好地组织列表。所以在我看来,我所有的成员都是按成员姓名的首字母分组的,例如:BBakedfishBeercanDanBigmike33xCCynicalassassinect..无论如何,我也想对这个列表进行分页,但如果我使用顺序,我无法将Kaminari的分页参数添加到我的Controller,因为我收到未定义的方法错误。所以这行不通:@members=Member.all.group_by{|u|u.fullname[0].titleize}.page(params[:page]).per(18)我的观点是这样的::brow

ruby-on-rails - RoR 扩展 ActiveRecord::relation with undestroy_all

我基本上想要以下功能,但反过来,我已经有了undestroy适用于单个类的函数。https://github.com/rails/rails/blob/2ad168ee41d590bd9a4d15eddf3c2f719c23b60a/activerecord/lib/active_record/relation.rb#L364但是,我试图扩展ActiveRecord::Relation但无济于事。以下是我如何通过forActiveRecord::Base为其他方法做的ActiveRecord::Base.extendTrack::BaseTrack但使用ActiveRecord::Re

ruby-on-rails - 你能做一个 :order in ruby after a find?

是否可以在ruby​​/rails中进行查找后对结果集进行排序?例如,是否可以做这样的事情警告:不起作用iftype==1@items=mycompany.itemselse@items=myhome.itemsend@items=@items:order=>"created_at"我认为这样的事情应该是可能的,但我对RoR还是很陌生,似乎无法在谷歌上找到任何东西。 最佳答案 您应该能够执行以下操作之一:访问时排序:iftype==1@items=mycompany.items(:order=>'created_at')else@i

ruby-on-rails - Rails Relation#update_all 比 Relation#update 消耗更多的内存

Relation#update(id,attributes)文档提到“无论对象是否成功保存到数据库,都会返回结果对象。”,而Relation#update_all(updates,conditions=nil,options={})表示没有进行任何实例化、回调或验证(直接数据库查询)。运行一个简单的性能测试并将Relation#update替换为Relation#update_all,看起来内存消耗增加了。有什么解释吗?摘录:#BeforeMyModel.update(my_hash['id'],special_attrs)#After(morememoryconsumed)MyMod