簡體   English   中英

在一個視圖表中排序多個模型

[英]Sorting multiple models in one view table

我有一個模型,該模型具有與之相關的各種不同類型的信息。

Opportunity.rb

has_many :notes
has_many :emails
has_many :calls

我目前在顯示頁面上有3個表格,我在控制器中調用該表格

@notes = @opportunity.notes.sorted
@emails = @opportunity.emails.sorted
@calls = @opportunity.calls.sorted

並在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

我不知道如何將控制器中的這些表合並到可在視圖中使用的對象中,以便創建表,按日期排序(“ created_at”),並且仍然使所有內容保持美觀。

最簡單的方法是將3個集合組合成一個數組,然后按created_at對其進行排序。 在您的控制器中:

@combined = (@notes + @emails + @calls).sort_by {|record| record.created_at}

然后,您可以在視圖中使用@combined來顯示時間軸。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM