2016-08-18 5 views
2

RubyでjBuilderを使用してJSONを構築するときに、どのように変数名を使用しますか?例えば変数名を持つRuby JBuilder?

、私は変数var1があるとします。

json.var1 do 

のではなく、明示的に:json.query_string

var1 = "query_string" 
query = Jbuilder.encode do |json| 
      json.query do 
      json.query_string do 
       json.query "SOMETHING" 
      end 
      end 
     end 

どのように私のような何かを行うことができますか?

var1 = 'query_string' 

query = Jbuilder.encode do |json| 
    json.query do 
    json.public_send(var1) do 
     json.query "SOMETHING" 
    end 
    end 
end 

答えて

1

は名前静的に知られていないメッセージを送信するためには、Object#public_sendメソッドを使用することができます。 githubの上

jbuiderのドキュメントこの例で示します:

var1 = "query_string" 
query = Jbuilder.encode do |json| 
    json.query do 
    json.set! var1 do 
     json.query "SOMETHING" 
    end 
    end 
end 
:あなたたとえば

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

# => {"author": { "name": "David" }} 

を、それはようなものになるだろう

4

あなたが代わりset!メソッドを使用することができます。

関連する問題