如何为此 json 结构设计一个 ruby 等效对象
How do I design a ruby equivalent objects for this json structure
我有一个 json 结构,我需要根据客户提供的 url 参数构建它。目前,我一直在使用 Jbuilder.encode
构建 json 结构,但它变得非常毛茸茸。
self.query = Jbuilder.encode do |json|
json.query do
json.filtered do
json.filter do
json.bool do
if(search_term && username)
json.array!(should) do
........
如何构建 ruby 对象,以便根据它们的初始化方式将它们转换为 json?
下面是我想在 ruby models/poros(普通旧 ruby 对象)中捕获的完整 json 结构。
{
"query": {
"filtered": {
"filter": {
"bool": {
"should": [
{
"query": {
"query_string": {
"query": "tablet",
"fields": [
"standard_analyzed_name",
"standard_analyzed_message"
]
}
}
},
{
"term": {
"username": "feedmatic"
}
}
],
"must": [
{
"terms": {
"status_type": [
"3",
"4"
]
}
},
{
"range": {
"created_on": {
"gte": 20140712,
"lte": 1405134711
}
}
}
]
}
}
}
}
}
嗯,我不太确定 Poro 的,但我看到的一件事是,当结构开始变得复杂时,就是制作一种方法,returns 你想要的散列表示以显示。您是否尝试过创建一个 returns 具有该结构的哈希的查询方法,然后在 jbuilder 模板中调用它?
rails 有一个 .attributes 方法,returns 是一个带有属性的散列,但您必须研究如何将它与 PORO 一起使用,以及它是否适用于此目的。
我有一个 json 结构,我需要根据客户提供的 url 参数构建它。目前,我一直在使用 Jbuilder.encode
构建 json 结构,但它变得非常毛茸茸。
self.query = Jbuilder.encode do |json|
json.query do
json.filtered do
json.filter do
json.bool do
if(search_term && username)
json.array!(should) do
........
如何构建 ruby 对象,以便根据它们的初始化方式将它们转换为 json?
下面是我想在 ruby models/poros(普通旧 ruby 对象)中捕获的完整 json 结构。
{
"query": {
"filtered": {
"filter": {
"bool": {
"should": [
{
"query": {
"query_string": {
"query": "tablet",
"fields": [
"standard_analyzed_name",
"standard_analyzed_message"
]
}
}
},
{
"term": {
"username": "feedmatic"
}
}
],
"must": [
{
"terms": {
"status_type": [
"3",
"4"
]
}
},
{
"range": {
"created_on": {
"gte": 20140712,
"lte": 1405134711
}
}
}
]
}
}
}
}
}
嗯,我不太确定 Poro 的,但我看到的一件事是,当结构开始变得复杂时,就是制作一种方法,returns 你想要的散列表示以显示。您是否尝试过创建一个 returns 具有该结构的哈希的查询方法,然后在 jbuilder 模板中调用它? rails 有一个 .attributes 方法,returns 是一个带有属性的散列,但您必须研究如何将它与 PORO 一起使用,以及它是否适用于此目的。