2011-02-10 26 views
1

我渲染待辦事項列表供用戶像這樣Rails的過濾部分結果

<%= render @user.todos %> 

我試圖找出是如何只顯示爲已完成已標記的人。

這是我應該在控制器或模型中做的事情,還是可以在視圖中過濾類似的東西?

回答

3

聽起來像在待辦事項模型命​​名範圍返回完成待辦事項所以你可以再做

<%= render @user.todos.completed %> 
+0

這也是我會做到這一點。它是最明確的視圖,並將根據模型本身內的狀態放置必要的邏輯。 – 2011-02-10 17:37:04

1

邏輯應該總是進入你的模型。

您應該在模型中創建:scope(rails 3)或:default_scope(Rails 2),並直接在View中調用它。像completed_todos,然後你可以打電話@ user.completed_todos。您只需在範圍中設置完成= true即可。

希望這會有所幫助。