基本上,我想採用一組典型的ActiveRecord關係,並使它看起來像一個簡單的關係。如何將ActiveRecord關係混亂映射到單個ActiveRecord :: Relation對象中
假設我有典型的Post
,Comment
,User
其中帖子有許多評論和評論有用戶。
現在,假設我想將以下數據導入到視圖中。 (假設所有需要的數據都可以通過一個Arel語句讀取)。
post.title
post.tag.name
post.comments.last
post.comments.last.user.full_name
我想通過通過以下方法稱爲PostSummary新的對象,只是訪問它們:
post_summary.title
post_summary.tag_name
post_summary.last_comment
post_summary.last_comment_user
到目前爲止,不太靠譜。它可以通過一個OpenStruct和一些映射來完成,但我想PostSummary是一個只讀的ActiveRecord :: Relation對象,可以讓你做到以下幾點:
PostSummary.first.attributes #=> [title, tag_name, last_comment, last_comment_user]
PostSummary.count #=> 42
...
我敢肯定,這是可能的很多工作,但是有沒有東西已經設置來做到這一點?
你認爲'PostSummary.count'是什麼?郵寄記錄? – lmars
在這種情況下,是的。 –