这是我的问题。我有 2 个关联的 Datamapper 模型:
class Task
include DataMapper::Resource
property :id, Serial
property :date, Date
property :amount, Float
belongs_to :project, :required => true
end
class Project
include DataMapper::Resource
property :id, Serial
property :name, String, :required => true
property :desc, Text
belongs_to :company
has n, :tasks
end
我的目标是创建包含任务日期、金额和项目名称的 JSON,它们应该与 project_id 匹配。目前 JSON 生成具有以下外观:
Task.all.to_json(:only => [:date, :amount, :project_id])
我可以从任务模型访问 project_id,但不知道如何从项目模型中为每个任务添加相应的项目名称。在 SQL 中,它看起来像 join:
select tasks.date, tasks.amount, projects.name from tasks
inner join projects
on tasks.project_id = projects.id;
您能否建议使用 Datamapper 方式而不是 SQL 来创建最终 JSON 的正确方法?
谢谢你。