以下是我创建数组的方法:
@companies_with_email = Company.contact_emails_date_sent_gt(@monday).
contact_emails_date_sent_lt(@friday).
find(:all, :select => "distinct companies.* ") || []
@companies_with_call = Company.contact_calls_date_sent_gt(@monday).
contact_calls_date_sent_lt(@friday).
find(:all, :select => "distinct companies.* ") || []
@companies_with_activity = @companies_with_email + @companies_with_call
@companies_with_activity.uniq!
但是,我希望它按字母顺序排列,所以我尝试添加.sort!我得到一个错误说< =>方法不存在。
undefined method `<=>' for #<Company:0x9d506a8>
答案 0 :(得分:4)
排序公司不“只是工作”。该错误消息的含义是没有办法只比较(在这种情况下使用比较运算符<=>
)两家公司,因为它不知道你要比较什么:数据库中的ID,名称,ID在Ruby内存等
您可以自己定义排序行为:
@companies_with_activity.sort! { |a,b| a.name <=> b.name }