다른 모델에서 SQL 쿼리를 수행하는 facade 클래스가 있습니다. 나는 스코프를 사용하고 싶었지만, 구현할 위치에 대해 의문을 품고, 평범한 메서드를 사용하는 것보다 낫다면 의심 스럽다. 좋은 프로그래밍 실습에 대한 우려도 있습니다. '올바른 범위 배치
def Function1(param)
@var = @user.instances.where("...", param).order(:start_time).group_by { |x| x.method}
end
def Function2
@var = @user.instances.where("...").first
end
def Function3
@var = @user.projects.distinct
end
1) (1) 기능과 2는 사용자 모델에 대한, 또는 경우에해야합니다
첫째, 내 모델
class User < ActiveRecord::Base
has_many :projects
class Project < ActiveRecord::Base
belongs_to :User
has_many :tasks, :inverse_of => :project
class Task < ActiveRecord::Base
belongs_to :project, :inverse_of => :tasks
has_many :instances
class Instance < ActiveRecord::Base
belongs_to :task
외관 클래스입니까?
2) function3은 User 모델 또는 프로젝트에 있어야합니까?
3) 예를 들어 프로젝트에 '고유 한'범위를 쓰고 프로젝트를 호출하는 '사용자 별 프로젝트'범위를 쓸 수 있습니까?
감사합니다. function2가 생성 한 범위에서 '.first'를 제거했습니다. – Gaston