Rails过滤部分结果

时间:2011-02-10 17:24:54

标签: ruby-on-rails

我正在为像这样的用户呈现待办事项列表

<%= render @user.todos %>

我想弄清楚的是如何仅显示已标记为已完成的那些。

这是我应该在控制器或模型中做的事情,还是可以在视图中过滤类似的内容?

2 个答案:

答案 0 :(得分:3)

听起来像todo模型上的命名范围,它返回已完成的待办事项,以便您可以执行

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

答案 1 :(得分:1)

逻辑应该始终进入你的模型。

您应该在模型中创建:scope(rails 3)或:default_scope(Rails 2),并直接在View中调用它。像completed_todos之类的东西然后你可以调用@ user.completed_todos。您只需在范围中设置completed = true。

希望这会有所帮助。