草庐IT

sort-change

全部标签

ruby-on-rails - rails/事件记录 : save changes to a model's associated collections

我是否必须保存对模型集合中单个项目的修改,或者是否有一种方法可以在我保存模型时调用以保存它们。#save似乎没有这样做。例如:irb>rental=#...#=>#irb>rental.dvd#=>#,sale_price:#>irb>rental.dvd.copies+=1#=>21irb>rental.save#=>trueirb>rental.dvd#=>#,sale_price:#>irb>Dvd.find_by_title('TheWomenofSummer')#=>#,sale_price:#>在上面的例子中,租赁的DVD副本似乎没有更新数据库中的副本(注意不同的副本数)。

arrays - 为什么 Dir.glob ("*.txt").sort 也需要 .each?

Dir.glob("*.txt"){|f|pf}打印文件名。Dir.glob("*.txt").sort{|f|pf}因ArgumentError失败。Dir.glob("*.txt").sort.each{|f|pf}按字母顺序打印文件名。为什么第二个失败了?更好的是,为什么第一个工作,有或没有.each?Dir.glob和Dir.glob.sort都是数组。Dir.glob.methods==Dir.glob.sort.methods。(受AlphabetizeresultsofDir.glob启发。不是Dir.globwithsortissue的副本,因为“第三个”已经回答了那个

ruby-on-rails - Ruby on Rails + Sidekiq : How do I change a scheduled job start time?

我最近开始使用Sidekiq并注意到它有一个我一直在寻找的很棒的功能:UserMailer.delay_until(5.days.from_now).find_more_friends_email基本上我可以在未来安排工作,所以我不需要我的应用程序持续轮询具有开始时间的新事件。现在这很有用,但我如何更改作业的开始时间?通常一些预定的事件会更改其开始时间。我如何在sidekiq中复制它?我知道我可以删除作业并创建一个新作业,但是否可以只修改开始时间?编辑:我建立在OtoBrglez的想法之上,这里是记录的代码:moduleTaskStuffclassTaskSetterincludeSi

ruby-on-rails - rails : Sorting a query by params?

我正在使用运行一个简单的查找全部并使用willpaginate分页,但我也希望由用户对查询进行排序。想到的第一个解决方案就是使用params[:sort]http://localhost:3000/posts/?sort=created_at+DESC@posts=Post.paginate:page=>params[:page],:order=>params[:sort]但他的方法的问题是查询默认为按ID排序,我希望它是created_at。这是一种安全的排序方法吗?有没有办法默认使用created_at? 最佳答案 我会使用命名

ruby - sort 和 sort_by 之间的细微差别

这不是一个技巧问题:[1,2,3].sort_by{|x,y|xy}=>[1,2,3][1,2,3].sort_by{|x,y|yx}=>[1,2,3]这是怎么回事?我原以为数组会彼此相反(因为它们具有排序和相同的参数)。 最佳答案 #sort_by应该只采用一个block参数,数组中的一项,并根据block的结果进行排序。当向它传递两个block参数时,第二个设置为nil因此所有block结果都像1nil这是nil所以数组的顺序不变。[1,3,2].sort_by{|x|x}#sortsusingxy=>[1,2,3][1,3,2

ruby-on-rails - ruby rails : how to migrate changes made on models?

在Rails应用程序中,如何迁移我在模型中所做的更改?例如,我知道如果我使用命令“railsgmodelPersonname:string”创建一个模型,也会创建一个迁移。但是,如果在这一步之后我转到创建的模型“Person”并添加一个新属性,这个新属性是否会自动添加到迁移中以便以后在数据库中持久化?还是我从错误的角度看待这个问题,应该将属性添加到迁移,然后再添加到模型?问候 最佳答案 您不能真正向模型“添加”属性,您可以通过创建迁移文件并运行它来实现——Rails根据数据库中的列来确定模型具有的属性。但是,如果您希望能够通过批量分

ruby - `sort_by' : comparison of Array with Array failed (no nil data)

classCustomSorterattr_accessor:start_date,:availabledefinitialize(start_date,available)@start_date=Time.mktime(*start_date.split('-'))@available=availableendendcs1=CustomSorter.new('2015-08-01',2)cs2=CustomSorter.new('2015-08-02',1)cs3=CustomSorter.new('2016-01-01',1)cs4=CustomSorter.new('2015-0

ruby sort_by 两次

Ruby在Enumerables上有一个sort_by方法。极好的!所以你可以做类似的事情entries.sort_by{|l|l.project.name}这将按项目名称对一堆条目进行排序。您如何使用它,以便在具有相同名称的项目中,条目按时间排序? 最佳答案 我建议将您要排序的列放入一个数组中。entries.sort_by{|l|[l.project.name,l.project.time]}这将遵循每种类型的自然排序顺序。 关于rubysort_by两次,我们在StackOverf

ruby-on-rails - Ruby 有 natural_sort_by 方法吗?

我有一个包含一堆属性的文件列表。其中一个属性是文件名,这是我想要对列表进行排序的方式。然而,列表是这样的:文件名1、文件名2、文件名10、文件名20。rubysort_by方法产生这个:files=files.sort_by{|file|file.name}=>[filename1,filename10,filename2,filename20]我想要一个更易于阅读的列表,例如文件名1、文件名2、文件名10、文件名20我找到了natural_sortgem但它似乎只能像排序方法一样工作。我需要一些可以指定数组排序依据的东西。有什么帮助吗? 最佳答案

ruby-on-rails - 在 ruby​​ 中使用 sort_by(对于 rails)?

所以我构建了一个自定义用户数组,如下所示:[["user1",432],["user1",53],["user9",58],["user5",75],["user3",62]]我想按每个数组中的第2个值从大到小对它们进行排序。我觉得对数组使用sort或sort_by是做到这一点的方法,但我不太确定如何完成它 最佳答案 排序方式如果您对sort_by感兴趣,您可以解构您的内部数组array.sort_by{|_,x|x}.reverse或者调用索引运算符array.sort_by{|x|x[1]}.reverse您可以取反从block