我正在使用Rails 3,並構建了一個應用程序,用戶可以在其中放置要租用的對象。對於每一個對象,他可以決定:複雜的SQL查詢或控制器中的複雜處理?
- 對象可以被整個世界所租用(潛在的)或沒有(對象訪問限制)
- 對象只能由我的朋友們可以租用(在應用程序經由
has_many friends, :through => friendship
協會) - 的目的可以通過以下組的成員(然後,用戶選擇任一他所屬的所有組中,或這些的子集)
我的問題是如何租用顯示current_user可以看到的對象列表?我看到兩個選項,我想知道哪個是最好的或者它們是否相同:
1)在對象控制器中,構建用戶可以看到的對象集合(@objects = Object.can_see(current_user)
),然後傳遞這到索引視圖並顯示整個列表
2)在控制器中,收集所有對象(@objects = Object.all
),將其傳遞給索引視圖,並在視圖中爲每個對象執行一系列測試以確定是否該對象應顯示或不顯示。