的最新記錄,我試圖創建一個使用(導軌)的ActiveRecord在Postgres的查詢,但似乎無法來解決這個問題。得到一個的has_many關係
一個公司有很多頁,而我試圖讓所有公司的最新頁面。
我試圖
Page.select('DISTINCT company_id')
這給了我1頁的所有公司。但是,這是不是最新的(created_at ASC)
所以,我想
Page.select('DISTINCT company_id').order('created_at ASC')
自創建以來,在不選擇其中給出了一個錯誤。但是如果我添加它,我會返回所有記錄。
所以,我想
Page.group('company_id').select('company_id').order('created_at ASC')
但是,這給出了一個錯誤,那created_at應在GROUP BY或聚合功能。
通過,增加created_at到組給出了事與願違的結果(多頁,同一家公司的)
任何幫助嗎?
編輯:
我想這是一個範圍,我需要鏈中的範圍以後。
我喜歡創建範圍(因此它返回ActiveRecord的關係),所以可連鎖它。基本上我想要例如Page.unique_for_companies.active或類似的 – Jareish
好的,我會更新我的答案。那麼你必須在'created_at'上使用'group'和一個聚合函數。 – Mischa
@Mischa我不確定你的解決方案。因爲它會從頁面表中提供唯一的company_id。它不會爲每個公司提供最新創建的頁面 –