我有Downloaded Document模型,其中包含有关用户下载文档的数据,downloaded_documents表的模式是
id document_id document_type user_id
1 444 article 1
2 120 judgment 2
3 444 article 1
4 555 rule 3
5 555 rule 4
现在我想为所有下载的文档及其用户生成报告。并且下载的文档和用户模型之间没有关系,每个document_type只在我们的应用程序中的每个模型中,所以我也想要一个文档信息也是用户信息。那我怎么写一个查询?
我写了以下查询:
DownloadedDocument.joins("JOIN users ON downloaded_documents.user_id = users.id").select("distinct on (downloaded_documents.document_id, downloaded_documents.user_id, downloaded_documents.document_type) users.email, document_type.created_at").where('created_at >=? and created_at <= ?',Date.parse(from_date), Date.parse(to_date))
但我没有收到文件信息。我应该在上面的查询中再添加一个JOIN,这只是我需要添加文档类型名称的地方JOIN on ------downloaded_documents.document_id = -----.id
,但对于ALL
我想要document_type中提到的所有模型,那我怎么写查询呢?
我的文章模型架构
ID title
444 first title
判断模式
ID appellant_name respondent_name case_no
120 ddd gggg abc.123
规则架构
ID rule_name
555 example
我想要一个像这样的输出:
{'judgment' => [{case_no: 'abc.123',email: 'abc.example.com', dcoument_id: 120}], 'article' => [{title: 'first title', email: 'ads@example.com', document_id: 444},{title: 'first_title', email: 'fff@example.com', document_id: 444}]}
我想生成一份报告以列出文档及其用户