Tag: sort

活动管理员排序has_many列的计数

使用Active Admin框架,我可以添加一个“用户”列,通过执行以下操作来总计特定“俱乐部”的计数: ActiveAdmin.register Club do index do column ‘Users’ do |club| club.users.count end end end 我可以以某种方式对此进行排序吗?

使用Active Record Reputation System gem,当我按投票排序时,不会发生排序

在信誉系统gem的RailsCast之后,我将以下代码添加到microposts_controller中 def index @microposts = Micropost.paginate(page: params[:page]).find_with_reputation(:votes, :all, order: “votes desc”) @micropost = current_user.microposts.build end 但除了我在模型中设置的默认范围外,我的索引操作中没有排序 在我的微博模型中,我有 class Micropost { order(‘created_at DESC’) } 如果我将默认范围更改为 default_scope -> { order(‘votes DESC’) } 它的工作方式只适用于索引页面,但会破坏我的所有其他页面。 我尝试删除默认范围并留在find_with_reputation方法中,但它仍然没有通过投票排序。 我也尝试在像这样的微博模型中的方法中定义范围 def self.popular find_with_reputation(:votes, :all, {:order => ‘votes desc’}) end 并像这样在microposts_controller中创建代码 def index @microposts = Micropost.paginate(page: params[:page]).popular @micropost = current_user.microposts.build end 它仍然没有按投票排序。 以下是访问微博索引页面的日志输出的副本https://gist.github.com/anonymous/9745552 […]

Rails:将nils排序到范围的末尾?

所以,我的Photo模型中有以下范围: scope :best, order(:average_rating.desc) 唯一的问题是,事后评级被添加到模型中,因此生产应用程序有很多记录,其中average_rating为零。 当我调用这个范围时,它首先返回所有的nils – 事实上它应该是相反的,nils应该是最后的(它们是尚未评级的照片)。 如何将nils排序到此范围的末尾?

will_paginate和.sort =>

我最近安装了will_paginate gem并且它工作得很好,但我希望它可以使用我目前的设置。 现在我在同一页面上显示所有Feed(或post),但是在点击该页面的人数之后排序: controller.rb @t = Time.now @h1 = @t – 1.hour @feeds = Feed.find(:all, :order => “created_at DESC”).sort { |p1, p2| p2.impressionist_count(:filter=>:all, :start_date=>@h1) p1.impressionist_count(:filter=>:all, :start_date=>@h1)} 现在……我测试了paginate gem,如果我在控制器中执行此操作,它可以正常工作: controller.rb @feeds = Feed.paginate(:per_page => 10, :page => params[:page], :order => “created_at DESC”) 所以我认为1 + 1 = 2并尝试将两者结合起来: controller.rb @feeds = Feed.paginate(:per_page => 10, :page=>params[:page], :order => […]

使用Unicode格式化阿拉伯语和日语文本?

有没有人有任何代码用于按字母顺序排列Unicode中的阿拉伯语和日语文本? 如果代码在ruby中会很棒。

在RoR中对UTF-8字符串进行排序

我试图找出一种在Ruby on Rails中对UTF-8字符串进行排序的“正确”方法。 在我的应用程序中,我有一个填充了国家/地区的选择框。 由于我的应用程序已本地化,因此每个现有语言环境都有一个countries.yml文件,该文件将国家/地区的ID与该国家/地区的本地化名称相关联。 我无法在yml文件中手动对字符串进行排序,因为我需要ID在所有语言环境中保持一致。 我所做的是创建一个ascii_name方法,它使用unidecode gem将重音和非拉丁字符转换为它们的ascii等价物(例如,“Afeganistão”将成为“Afeganistao”),然后排序: require ‘unidecode’ class Country def ascii_name Unidecoder.decode(name).gsub(“[?]”, “”).gsub(/`/, “‘”).strip end end Country.all.sort_by(:&ascii_name) 但是,这有明显的问题: 它无法正确排序非拉丁语区域设置,因为可能没有直接类似的拉丁字符。 它没有区分字母和该字母的所有重音forms(例如,A和Ä可以互换) 有谁知道一种更好的方法,我可以排序我的字符串?