これを試すと、c が存在しない場合に {a: 1, b:} が返されます。c が存在する場合、正しい {a:1,b:1} が得られます。しかし、{a:1} のみを取得できるように、条件付きでノード b を非表示にするにはどうすればよいでしょうか?
{"a": <%= json @teams.count %>
,"b": <%= json @teams.num if @c.present? %>}
これを試すと、c が存在しない場合に {a: 1, b:} が返されます。c が存在する場合、正しい {a:1,b:1} が得られます。しかし、{a:1} のみを取得できるように、条件付きでノード b を非表示にするにはどうすればよいでしょうか?
{"a": <%= json @teams.count %>
,"b": <%= json @teams.num if @c.present? %>}
ルビーハッシュを渡すことができjson
、それは正しく理解されます
<%= json( a: @teams.count, b: (@teams.num if @c.present?) ) %>
メソッドの問題は、文字列を自分でレンダリングしようとしているnil
が、空の文字列ではなく空白としてレンダリングされていること''
です。理論的には、次のように修正できます。
{"a": <%= json @teams.count %>
,"b": <%= json(@c.present? ? @teams.num : '' %>}
ただし、最初の方法を使用すると、ほとんどの面倒を回避できます。