我很难为我的应用选择正确的模型架构。用户可以创建作业(JobRequest
),这些作业正在按计划运行,因此每个JobRequest
都有多次运行(JobRequestRun
)。每次运行后,都会生成并附加到OutputDataFile
的输出文件(JobRequestRun
)(每次运行只有一个文件)。我应该可以通过调用JobRequest.output_data_files
或JobRequestRun.output_data_file
来访问这些报告文件。我无法满足我需要的计划:
JobRequest
has_many output_data_files, through: job_request_runs
JobRequestRun
belongs_to output_data_files
belongs_to job_request
OutputDataFile
has_many job_requests, through: job_request_runs
# OR
JobRequest
has_many output_data_files
has_many job_request_runs
JobRequestRun
has_one output_data_file
belongs_to job_request
OutputDataFile
belongs_to job_request
belongs_to job_request_run
其中哪一个对你有意义?
答案 0 :(得分:2)
根据您对问题域的文字说明,我就想到了这一点:
class JobRequest < ActiveRecord::Base
has_many :job_request_runs
has_many :output_data_files, through: :job_request_runs
end
class JobRequestRun < ActiveRecord::Base
belongs_to :job_request
has_one :output_data_file
end
class OutputDataFile < ActiveRecord::Base
belongs_to :job_request_run
has_one :job_request, through: :job_request_run
end