2011-02-10 3 views
1

Я рендеринга список задач для пользователя, как такРельсы фильтрация частичных результатов

<%= render @user.todos %> 

То, что я пытаюсь выяснить, как показать только те, которые были помечены как завершенные.

Это что-то, что я должен делать в контроллере или модели, или нормально фильтровать что-то подобное в представлении?

ответ

3

звучит как именованные рамки на модели Todo, которая возвращает завершенную Todos, так что вы можете сделать

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

Это также способ, которым я хотел бы сделать это. Он наиболее явный для ваших представлений и поместит необходимую логику для фильтрации объектов на основе состояния в самой модели. –

1

Логика всегда должна идти в вашу модель.

Вы должны создать в своей модели область видимости (рельсы 3) или: default_scope (Rails 2) и вызвать ее прямо в представлении. Что-то вроде complete_todos, а затем вы можете вызвать @ user.completed_todos. Вы просто задали завершенное значение = true в области.

Надеюсь, это поможет.