1
生のクエリから何らかの形でJSON値をキャストするようにActiveRecordを設定できますか?ActiveRecord生クエリを使用したJSONキャスト
は、ここで私は、ハッシュ値としてキャストされる{"x": 1}
結果を取得したいの例ですが、私は文字列を取得しています:
irb(main):017:0> ActiveRecord::Base.connection.select_value(%{SELECT '{"x": 1}'::json})
(0.2ms) SELECT '{"x": 1}'::json
=> "{\"x\": 1}"
irb(main):018:0> ActiveRecord::Base.connection.select_value(%{SELECT '{"x": 1}'::json}).class
(0.2ms) SELECT '{"x": 1}'::json
=> String
は、JSON.parse('{"x": 1}')
を提案しないでください。私はActiveRecordのアプローチが必要です。
あなたは「私はActiveRecordのアプローチを必要とする」とはどういう意味ですか?結果をどうしようとしていますか?モデルはありますか?実際のクエリはどのように見えますか? –
ActiveModelシリアライザJSONを試しましたか? 詳細はこちらhttp://api.rubyonrails.org/classes/ActiveModel/Serializers/JSON.html –
@muistooshort私はActiveRecordレベルで何かが必要なだけで、PostgreSQL OIDなどをベースにした型キャストを実装することもできます。 ARを自動的に作成したいのですが。 – ole