Ruby 有变量名的 JBuilder?
Ruby JBuilder with variable names?
在 Ruby 中使用 jBuilder
构造 JSON 时如何使用变量名?
例如,假设我有一个变量var1
:
var1 = "query_string"
query = Jbuilder.encode do |json|
json.query do
json.query_string do
json.query "SOMETHING"
end
end
end
我该如何做:
json.var1 do
而不是明确地:json.query_string
?
为了发送名称不是静态已知的消息,您可以使用Object#public_send
方法:
var1 = 'query_string'
query = Jbuilder.encode do |json|
json.query do
json.public_send(var1) do
json.query "SOMETHING"
end
end
end
您也可以使用 set!
方法。
jbuider 在 github 上的文档给出了这个例子:
json.set! :author do
json.set! :name, 'David'
end
# => {"author": { "name": "David" }}
对于您的示例,它类似于:
var1 = "query_string"
query = Jbuilder.encode do |json|
json.query do
json.set! var1 do
json.query "SOMETHING"
end
end
end
在 Ruby 中使用 jBuilder
构造 JSON 时如何使用变量名?
例如,假设我有一个变量var1
:
var1 = "query_string"
query = Jbuilder.encode do |json|
json.query do
json.query_string do
json.query "SOMETHING"
end
end
end
我该如何做:
json.var1 do
而不是明确地:json.query_string
?
为了发送名称不是静态已知的消息,您可以使用Object#public_send
方法:
var1 = 'query_string'
query = Jbuilder.encode do |json|
json.query do
json.public_send(var1) do
json.query "SOMETHING"
end
end
end
您也可以使用 set!
方法。
jbuider 在 github 上的文档给出了这个例子:
json.set! :author do
json.set! :name, 'David'
end
# => {"author": { "name": "David" }}
对于您的示例,它类似于:
var1 = "query_string"
query = Jbuilder.encode do |json|
json.query do
json.set! var1 do
json.query "SOMETHING"
end
end
end