0

これを試すと、c が存在しない場合に {a: 1, b:} が返されます。c が存在する場合、正しい {a:1,b:1} が得られます。しかし、{a:1} のみを取得できるように、条件付きでノード b を非表示にするにはどうすればよいでしょうか?

{"a":   <%= json @teams.count %>
,"b":   <%= json @teams.num if @c.present? %>}
4

1 に答える 1

1

ルビーハッシュを渡すことができjson、それは正しく理解されます

<%= json( a: @teams.count, b: (@teams.num if @c.present?) ) %>

メソッドの問題は、文字列を自分でレンダリングしようとしているnilが、空の文字列ではなく空白としてレンダリングされていること''です。理論的には、次のように修正できます。

{"a":   <%= json @teams.count %>
,"b":   <%= json(@c.present? ? @teams.num : '' %>}

ただし、最初の方法を使用すると、ほとんどの面倒を回避できます。

于 2012-10-17T01:39:09.443 に答える