私は他のモデルで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)は、Userモデル上、またはインスタンスにある1機能と2べきでしょうか?
2)function3はUserモデルまたはプロジェクトに存在する必要がありますか?
3)たとえば、プロジェクトに「個別の」スコープと、プロジェクトを呼び出す「ユーザー独自のプロジェクト」のスコープを記述できますか?
ありがとうございました。私はfunction2で生成されたスコープから '.first'を削除しました – Gaston