Car*_*ela 2 sorting controller model ruby-on-rails view
我有一个模型,其中包含与之相关的各种不同类型的信息。
Opportunity.rb
has_many :notes
has_many :emails
has_many :calls
Run Code Online (Sandbox Code Playgroud)
我目前在显示页面上有 3 个表,在我调用的控制器中
@notes = @opportunity.notes.sorted
@emails = @opportunity.emails.sorted
@calls = @opportunity.calls.sorted
Run Code Online (Sandbox Code Playgroud)
并将它们显示在3个表中
我想按时间顺序对它们进行排序,这样我就可以得到一个时间表。
每个模型都有日期,我想按日期排序,然后按日期顺序返回对象。即表格如下:
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
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚如何将控制器中的这些表合并到可以在视图中使用的对象中,以便我可以创建一个表,按日期(“created_at”)排序,并仍然保持一切看起来漂亮干净。
最简单的方法是将这 3 个集合组合成一个数组,并按created_at 对其进行排序。在你的控制器中:
@combined = (@notes + @emails + @calls).sort_by {|record| record.created_at}
Run Code Online (Sandbox Code Playgroud)
然后您可以@combined在视图中使用来显示时间线。
| 归档时间: |
|
| 查看次数: |
883 次 |
| 最近记录: |