Ruby JBuilder 有变量名吗?

Hen*_*hiu 3 ruby json ruby-on-rails jbuilder

在 Ruby 中构建 JSON 时如何使用变量名jBuilder

例如,假设我有一个变量var1

var1 = "query_string"
query = Jbuilder.encode do |json|
          json.query do
            json.query_string do
              json.query "SOMETHING"
            end
          end
        end
Run Code Online (Sandbox Code Playgroud)

我怎样才能做类似的事情:

json.var1 do
Run Code Online (Sandbox Code Playgroud)

而不是明确地:json.query_string

Ahm*_*eem 7

您也可以使用set!方法。

github 上的 jbuider 文档给出了这个例子:

json.set! :author do
  json.set! :name, 'David'
end

# => {"author": { "name": "David" }}
Run Code Online (Sandbox Code Playgroud)

对于你的例子,它会是这样的:

var1 = "query_string"
query = Jbuilder.encode do |json|
  json.query do
    json.set! var1 do
      json.query "SOMETHING"
    end
  end
end
Run Code Online (Sandbox Code Playgroud)