mongoid向查询添加其他结果

时间:2014-06-06 21:35:23

标签: ruby-on-rails-4 mongoid

所以在Mongoid中,我发送了一系列自定义报告模板作为JSON。但是客户端也有一些报告类型,它们总是包含在内。

因此,用户拥有多个群组,每个群组都有许多ReportTemplates

所以当我运行@ user.report_templates时,我会得到一个像这样的哈希 - >

id: "the-snake-report"
name: "The Snake Report"
icon: null
location: null
active: "2014-06-20"
-field_templates: [
-{
-_id: {
$oid: "5391794d4d6163fcea360000"
}
mandatory: false
name: "How long was it?"
options: null
}
-{
-_id: {
$oid: "5391794d4d6163fcea370000"
}
mandatory: false
name: "Did it have any legs?"
options: null
}
-{
-_id: {
$oid: "5391794d4d6163fcea380000"
}
mandatory: false
name: "Did it any languages?"
-options: [
"English"
"Spanish"
"French"
]
}
]
}
-{
id: "bad-kids"
name: "Bad kids "
icon: null
location: null
active: "2014-06-19"
-field_templates: [
-{
-_id: {
$oid: "539167714d6163fcea2b0000"
}
mandatory: false
name: "fish"
-options: [
"one"
"two"
"three"
]
}
-{
-_id: {
$oid: "539167714d6163fcea2c0000"
}
mandatory: false
name: "The cat in the hat?"
options: null
}
-{
-_id: {
$oid: "539167714d6163fcea2d0000"
}
mandatory: true
name: "Are you ok?"
options: null
}
-{
-_id: {
$oid: "539167714d6163fcea2e0000"
}
mandatory: true
name: "Is it a house?"
-options: [
"A car"
"a boat"
]
}
]
}

等。 所以我想采用@ user.report_templates.includes(ReportTemplate.simple_report)等方法

并将其包含在该哈希中。 (而不是将其保留在DB中,我宁愿将其保留为方法) 但我不确定如何处理错误:

TypeError: wrong argument type Hash (expected Module)

所以我也尝试创建一个名为SimpleReport

的帮助器(模块)
@user.report_templates.includes(ReportTemplate.simple_report) 

但后来我得到了一个MOPED查询

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

好的,我明白了。 基本上取结果.to_json并将结果附加到其上。

  

渲染json:@ template.as_json<< ReportTemplate.simple_report