在一个视图中对多个模型进行排序 table
Sorting multiple models in one view table
我有一个模型,其中包含各种不同类型的信息。
Opportunity.rb
has_many :notes
has_many :emails
has_many :calls
我目前在显示页面上有 3 个 tables,我在控制器中调用
@notes = @opportunity.notes.sorted
@emails = @opportunity.emails.sorted
@calls = @opportunity.calls.sorted
并在 3 table 秒内显示它们
我想按时间顺序对它们进行排序,以便获得时间表。
每个模型都有日期,我想按日期排序,然后 return 按日期顺序排列对象。
IE。
table 是:
Note | Content | 11-Feb | Bob
Call | Content | 07-Feb | Dave
Email | Content | 04-Feb | Steve
Call | Content | 03-Feb | Dave
Note | Content | 01-Feb | Margaret
我不知道如何将控制器中的那些 table 合并到我可以在视图中使用的对象中,以便我可以创建 table,按日期排序 ( "created_at") 并且仍然保持一切看起来干净整洁。
最简单的方法是将 3 个集合组合成一个数组,然后按 created_at 排序。在您的控制器中:
@combined = (@notes + @emails + @calls).sort_by {|record| record.created_at}
然后您可以在您的视图中使用 @combined
来显示时间线。
我有一个模型,其中包含各种不同类型的信息。
Opportunity.rb
has_many :notes
has_many :emails
has_many :calls
我目前在显示页面上有 3 个 tables,我在控制器中调用
@notes = @opportunity.notes.sorted
@emails = @opportunity.emails.sorted
@calls = @opportunity.calls.sorted
并在 3 table 秒内显示它们
我想按时间顺序对它们进行排序,以便获得时间表。
每个模型都有日期,我想按日期排序,然后 return 按日期顺序排列对象。 IE。 table 是:
Note | Content | 11-Feb | Bob
Call | Content | 07-Feb | Dave
Email | Content | 04-Feb | Steve
Call | Content | 03-Feb | Dave
Note | Content | 01-Feb | Margaret
我不知道如何将控制器中的那些 table 合并到我可以在视图中使用的对象中,以便我可以创建 table,按日期排序 ( "created_at") 并且仍然保持一切看起来干净整洁。
最简单的方法是将 3 个集合组合成一个数组,然后按 created_at 排序。在您的控制器中:
@combined = (@notes + @emails + @calls).sort_by {|record| record.created_at}
然后您可以在您的视图中使用 @combined
来显示时间线。