2

ruby ハッシュを haml の json 文字列にレンダリングしようとしています。(!出力をエスケープしないように Haml に指示します)

! { :name => "Paul" }.as_json 

私はこの出力を期待しています

{ "name":"Paul" }

しかし、コロンの代わりにハッシュロケットを取得します

{ "name"=>"Paul" }

as_jsonプロパティ/値セパレータのハッシュ ロケットの代わりに、haml を作成またはコロンを出力するにはどうすればよいですか?

4

1 に答える 1

7

as_json基本的には、JSON でのオブジェクトの表現方法を指定できるメソッドです。実際には、JSON でエンコードされた文字列を返すまでには至りません。to_jsonそのために必要です。

この理由は、JSON エンコード時にモデルが返すフィールドを決定したい場合があるため (たとえば、 User モデルからパスワードを削除する場合)、 を使用するto_jsonと、それを別の JSON オブジェクト内にネストすることができなくなります。エンコードされ、エスケープされた文字列になっています。

to_jsonを呼び出しas_json、戻り値をエンコードします。

参照元: http://jonathanjulian.com/2010/04/rails-to_json-or-as_json/

于 2012-06-30T16:45:05.597 に答える