Поиск записей в Rails (не знаю, какой подход выбрать) - PullRequest
2 голосов
/ 14 января 2011

У пользователя много задач.

В представлении контроллера задач необходимо показать задачи для пользователя. (один просмотр для различных статусов - активный, назначенный, закрытый и т. д.)

Каков «правильный» способ получения списка задач, скажем для статуса = active?

#class method on Task; called from TasksController
Task.find_for_user(current_user, :active)

#instance method on user; called from TasksController
current_user.find_tasks :active (user model instance)

#the "common" way that is used in controllers and in many examples/articles
current_user.tasks.find(:where => :status = :active)  #Note the "where" part here is pseudo-code (not tested it)

1 Ответ

1 голос
/ 14 января 2011

Используя ассоциацию, я был обучен этому.Всегда работал нормально, и позволяет Rails позаботиться о SQL без какого-либо дополнительного кода от меня.

Так что current_user.tasks.where(:status => :active), или вы можете создать область.*

class Task < ActiveRecord::Base
    scope :active, :conditions => { :status => :active }
    ...
end 

и вызов current_user.tasks.active в вашем контроллере

также может захотеть взглянуть на документацию , которая содержит множество других хороших советов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...