Ruby on rails 如何在rails中按嵌套属性进行分组和排序?

Ruby on rails 如何在rails中按嵌套属性进行分组和排序?,ruby-on-rails,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 4,例如: %table.invoice - @jobs.each do |job, billable_jobs| %tbody %tr.title %td.title{colspan: '4'}= job.stand_alone_title - billable_jobs.each do |billable_job| = content_tag_for(:tr, billable_job) do %td &am

例如:

%table.invoice
  - @jobs.each do |job, billable_jobs|
    %tbody
      %tr.title
        %td.title{colspan: '4'}= job.stand_alone_title
      - billable_jobs.each do |billable_job|
        = content_tag_for(:tr, billable_job) do
          %td  
          %td= billable_job.user.name
          %td= billable_job.billable_price
          %td= button_to 'Invoice'

其中作业按客户标题进行分组和排序。(上面的名称是作业的
独立\u title
,它是从客户标题派生出来的。)我所知道的按客户对作业进行分组的每一种方法都会将其转换为我似乎无法正确排序的散列或数组。

您可以按分组,它会将其转换为数组,但您可以使用数组类中存在的sort_by方法对数组进行排序

Amber - Job 1
  A-BillableJob $10
  B-BillableJob $25
Amber - Job 2
  A-BillableJob $10
Paul
  A-BillableJob $25
  B-BillableJob $10
class BillableEventController [, ..],  => [, ...]]
@customers=jobs.sort_by{| customer,jobs | customer.title}
#方法sort_by from Array类sorts Array
#并根据参数进行排序
结束
结束

您可以执行group\U by,它会将其转换为array,但您可以使用array类中存在的sort\U by方法对array进行排序

Amber - Job 1
  A-BillableJob $10
  B-BillableJob $25
Amber - Job 2
  A-BillableJob $10
Paul
  A-BillableJob $25
  B-BillableJob $10
class BillableEventController [, ..],  => [, ...]]
@customers=jobs.sort_by{| customer,jobs | customer.title}
#方法sort_by from Array类sorts Array
#并根据参数进行排序
结束
结束

您可以执行group\U by,它会将其转换为array,但您可以使用array类中存在的sort\U by方法对array进行排序

Amber - Job 1
  A-BillableJob $10
  B-BillableJob $25
Amber - Job 2
  A-BillableJob $10
Paul
  A-BillableJob $25
  B-BillableJob $10
class BillableEventController [, ..],  => [, ...]]
@customers=jobs.sort_by{| customer,jobs | customer.title}
#方法sort_by from Array类sorts Array
#并根据参数进行排序
结束
结束

您可以执行group\U by,它会将其转换为array,但您可以使用array类中存在的sort\U by方法对array进行排序

Amber - Job 1
  A-BillableJob $10
  B-BillableJob $25
Amber - Job 2
  A-BillableJob $10
Paul
  A-BillableJob $25
  B-BillableJob $10
class BillableEventController [, ..],  => [, ...]]
@customers=jobs.sort_by{| customer,jobs | customer.title}
#方法sort_by from Array类sorts Array
#并根据参数进行排序
结束
结束

你的解决方案让我达到了目的。我编辑了你的答案以显示我是如何接受的。谢谢,你的解决方案让我达到了目的。我编辑了你的答案以显示我是如何接受的。谢谢,你的解决方案让我达到了目的。我编辑了你的答案以显示我是如何接受的。谢谢,你的解决方案让我达到了目的。我编辑了你的答案以显示我是如何接受的。谢谢