У меня есть класс фасада, который выполняет SQL-запросы на других моделях. Я хотел использовать области, но у меня возникают сомнения относительно того, где их реализовать, и если они лучше, чем просто простые методы. Я также обеспокоен хорошей практикой программирования.Правильное размещение области
Во-первых, это мои модели
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
Фасад Класс:
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 быть на модели пользователя, или в случаях?
2) Должен ли функционал быть на модели пользователя или в проектах??
3) Могу ли я, например, написать «отличную» область для проектов и сферу «Пользовательские проекты», которая вызывает проекты?
Спасибо, я удалил «.first» из области, сгенерированной функцией2 – Gaston