Tag: 排序

通过在其他表上计数的rails命令

我正在从Hartl教程中为twitter应用添加测验function,并拥有以下模型: 用户与教程几乎相同: class User < ActiveRecord::Base has_many :followed_users, through: :relationships, source: :followed has_many :takens, dependent: :destroy has_many :questions, through: :takens end 使用的是用户ID的问题ID表: class Taken < ActiveRecord::Base belongs_to :user belongs_to :question end 问题没什么有趣的: class Question < ActiveRecord::Base attr_accessible :category, :correct, :option1, :option2, :option3, :qn end 我希望能够按照他们所进行的测试次数来显示follow_users和followers。 在控制台中,这可以通过: User.find_by_id(1).question_ids.count 然后我可以这样做: User.find_by_id(1).followers.first.question_ids.count 在控制台中获取单个关注者的计数。 我觉得我差不多了。 如何通过’takens’计数对关注者和follow_users进行排序? (我也在看cache_count,起初看起来很有希望,但可能不是我需要的……)

如何查找MASSIVE数组中的哪些项目不止一次出现?

这是一个非常简单的问题; 哪些项目不止一次出现在列表中? array = [“mike”, “mike”, “mike”, “john”, “john”, “peter”, “clark”] 正确答案是[“mike”, “john”] 。 好像我们可以这样做: array.select{ |e| ary.count(e) > 1 }.uniq 问题解决了。 可是等等! 如果arrays非常大,该怎么办: 1_000_000.times { array.concat(“1234567890abcdefghijklmnopqrstuvwxyz”.split(”)) } 碰巧我需要弄清楚如何在合理的时间内完成这项工作。 我们正在谈论数以百万计的记录。 对于它的价值,这个庞大的arrays实际上是10-20个较小arrays的总和。 如果比较那些比较容易,请告诉我 – 我很难过。 我们正在谈论每个文件10,000到10,000,000行,数百个文件。

如何在多维数组中找到最长的字符串?

我试图从多维数组中获取最长的字符串,但由于某种原因它不起作用。 这就是我所拥有的: a = [“MAKKGKPRPDHRPPAHNPHYAHDPPPYSQQQPPLQQQNYAQQMNRQHARPRPSPPSEVSDCVKYSLFLYNCIFWVSMHSS”], [“MHHGGGGGNRQHARPRPSPPSEVSDCVKYSLFLYNCIFWVSMHSS”], [“MTYINLGVTRTGDLMIGRHRP”], [“MRIYNRVCFQTAGCYLQNLVTTSIQPARVWTY”], [“MAACGLGRVFSAFKVDEMD”], [“MPSGFVGKRSGFCQFCCSHI”], [“MTYSTAKEGAYPFRNFN”]] p a.max_by{|v|v}[0] # => “MTYSTAKEGAYPFRNFN” 有人可以让我知道我做错了什么吗?

使用相应模型中的方法对哈希进行排序

假设您有一个具有属性“age”的模型Dog,这是一种确定“吠叫频率”的方法: class Dog { order(‘age ASC’) } def barking_frequency # some code end end 在您的控制器中,您有: def index @dogs = Dog.by_age end 一旦你有@dogs的哈希值,你如何通过barking_frequency对它进行排序,这样结果就可以将特定年龄的狗排在一起,如下所示: Name Age Barking Frequency Molly 2 1 Buster 2 4 Jackie 2 7 Dirk 3 1 Hank 3 3 Jake 3 4 Spot 10 0

Ruby,如何将一个数组混合到另一个数组中

两个arrays: a1 = [“a”, “b”, “c”, “d”, “e”, “f”] a2 = [1, 2, 3] 如何将a2插入a1 ,保持a2顺序但是在a1的 随机索引中?

Ruby按列对.dat文件进行排序

我对ruby很新。 我正在尝试打开文件.dat并按第二列降序排序。 到目前为止,我能够打开文件阅读全部内容。 请问有什么建议? 非常感谢。 文件: 1 88 59 74 53.8 0.00 280 9.6 270 17 1.6 93 23 1004.5 2 79 63 71 46.5 0.00 330 8.7 340 23 3.3 70 28 1004.5 3 77 55 66 39.6 0.00 350 5.0 350 9 2.8 59 24 1016.8 4 77 59 68 51.1 0.00 110 […]

在Ruby中按字母顺序对数组进行排序,但最后使用大写单词

我试图在Ruby中按字母顺序对字符串进行排序。 问题是,它将大写单词放在字符串的开头,但我最后想要它们。 我原来的字符串是: [“Apple”, “banana”, “Zebra”, “orange”] 我想要的: [“banana”, “orange”, “Apple”, “Zebra”]

如何在Ruby中对世界杯组表进行排序

我正在编写一个算法来根据匹配数据创建和排序世界杯组表。 因此,给出以下匹配数据: [ { id: 1, home_team: “Honduras”, away_team: “Chile”, home_score: 0, away_score: 1 }, { id: 2, home_team: “Spain”, away_team: “Switzerland”, home_score: 0, away_score: 1 }, { id: 3, home_team: “Chile”, away_team: “Switzerland”, home_score: 1, away_score: 0 }, { id: 4, home_team: “Spain”, away_team: “Honduras”, home_score: 2, away_score: 0 }, { id: 5, home_team: […]

在不重新查询数据库的情况下重新排序rails中的活动记录?

例如,假设我有一个名为Products的模型,在Products控制器中,我有product_list视图的以下代码来显示已排序的产品。 @products = Product.order(params[:order_by]) 让我们假设在product_list视图中,用户可以使用下拉列表按价格,评级,权重等进行排序。 数据库中的产品不会经常更改。 我很难理解的是,每次用户选择新的order_byfilter时rails是否必须查询,或者rails是否能够以某种方式缓存活动记录以便在服务器端重新排序? 有没有办法写它,所以如果用户排序,rails将不会重新查询结果? (即,如果产品表不经常更改,那么如果用户只想按其他变量排序,则无法进行查询) 谢谢,

对包含时间或距离的字符串进行排序

我已经为自定义字符串实现了排序算法,该字符串表示田径事件的时间或距离数据。 以下是格式 ’10:03.00 – 十分三秒或十英尺三英寸 排序的结果是,对于场事件,最长的投掷或跳跃将是第一个元素,而对于运行事件,最快的时间将是第一个。 以下是我目前用于现场活动的代码。 我没有发布running_event_sort因为它与大于/小于交换的逻辑相同。 虽然它有效,但它看起来过于复杂,需要重构。 我愿意接受建议。 任何帮助都会很棒。 event_participants.sort!{ |a, b| Participant.field_event_sort(a, b) } class Participant def self.field_event_sort(a, b) a_parts = a.time_distance.scan(/'([\d]*):([\d]*).([\d]*)/) b_parts = b.time_distance.scan(/'([\d]*):([\d]*).([\d]*)/) if(a_parts.empty? || b_parts.empty?) 0 elsif a_parts[0][0] == b_parts[0][0] if a_parts[0][1] == b_parts[0][1] if a_parts[0][2] > b_parts[0][2] -1 elsif a_parts[0][2] b_parts[0][1] -1 else 1 end elsif a_parts[0][0] > […]