草庐IT

php - Yii:按条件多重排序

全部标签

ruby - 按升序和降序对多个值进行排序

我正在尝试根据不同的属性对一组对象进行排序。其中一些属性我想按升序排序,一些属性按降序排序。我已经能够按升序或降序进行排序,但无法将两者结合起来。这是我正在使用的简单类:classDogattr_reader:name,:genderDOGS=[]definitialize(name,gender)@name=name@gender=genderDOGS然后我可以实例化一些狗,稍后进行分类。@rover=Dog.new("Rover","Male")@max=Dog.new("Max","Male")@fluffy=Dog.new("Fluffy","Female")@cocoa=Do

Ruby - 覆盖/启用多重分配(例如 `a, b, c = d, e, f` )

在ruby中,你可以这样做:d=[1,2,3]a,b,c=da、b和c将分别接收值1、2和3。d,在本例中是一个Array,ruby知道将其内容分配给a、b,和c。但是,如果d是一个Fixnum,例如,只有a会被分配给d的值,而b和c将被分配nil。d的哪些属性允许它用于多重赋值?到目前为止,在我的探索中,我只能使Array的子类实例以这种方式运行。 最佳答案 这是一个非常没有文档记录的功能,我会谨慎使用它,但我们开始吧。摘自《TheRubyProgrammingLanguage》一书:Whentherearemultiplelva

ruby-on-rails - Ruby Gem ActiveRecord 具有多个条件的查找方法

我正在使用三个数据库表构建一个Sinatra应用程序:user、post和like。我想运行一个查询来在like表中找到一个条目,如下所示:FINDinlikeWHEREuser_id==params[:user_id]ANDpost_id==params[:post_id](对于一种情况,我将使用:Like.find_by_user_id(params[:user_id]))我的问题是:如何使用ActiveRecordGem运行具有多个条件的查找查询? 最佳答案 使用where:Like.where('user_id=?ANDpo

Ruby:对可能包含 nil 的多维数组进行排序有时会失败

我在我的一个项目的失败测试中发现了这个例子。为什么这样做:[[1,2,3],[2,3,4],[1,1,nil]].sort#=>[[1,1,nil],[1,2,3],[2,3,4]]但这不是:[[1,2,3],[nil,3,4],[1,1,nil]].sort#=>ERROR:ArgumentError:comparisonofArraywithArrayfailed已测试的Ruby版本:2.0.0、1.9.3。 最佳答案 它失败了,因为它超过了nil。第一个测试示例没有失败的原因是1,1与1,2进行了比较。它不会达到nil的程度进

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 - 我如何在逻辑上或两个包括? ruby 的条件?

我刚开始学习Ruby,需要一些关于include的帮助吗?方法。下面的代码工作得很好:x='ab.c'ifx.include?"."puts'hello'elseputs'no'end但是当我这样编码时:x='ab.c'y='xyz'ifx.include?"."||y.include?"."puts'hello'elseputs'no'end如果在运行时出现错误:test.rb:3:syntaxerror,unexpectedtSTRING_BEG,expectingkeyword_thenor';'or'\n'ifx.include?"."||y.include?"."^test.

ruby - 如果值不为零,有条件地在 Ruby 中执行 block ? (又名 Smalltalk 的 ifNotNilDo :)

在Smalltalk中有方法ifNotNilDo:它是这样使用的:databasegetUserifNotNilDo:[:user|MailsendTo:user]在不是nil的对象上执行block,将对象本身作为参数传递。UndefinedObject类(Smalltalk等同于Ruby的NilClass)中的实现什么也不做。这样,如果获取用户的结果是nil对象,则什么也不会发生。我不知道Ruby有类似的东西,所以我推出了自己的解决方案。它是这样的:classObjectdefnot_nilyield(self)endendclassNilClassdefnot_nil#donoth

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