0

ActiveRecordでは、列内の属性に対してwhere(my_attribute: value)を実行できます。DSLを作成して、ActiveRecordのようなpostgres jsonを照会します。

代わりに、それは次のようになり、JSONの列に定義された属性と、まだことはできません。

where("document->>'my_attribute' = ?", value) 

私たちは私のモデルが一つだけのJSON列、documentを持っていると仮定した場合、作成することが可能です

dwhere(my_attribute: value) 
+0

あなたはpostgresの上hstoreのを使用する必要がありますか? –

+0

いいえ、jsonb。 't.jsonb:document、null:false、default: '{}'' –

+0

を使ってシリアル化フィールドを検索することができます。 –

答えて

1

これは私が作ってみた最も近い:

scope :dwhere, -> (key, value) { where("document ->> '#{key}' = '?'", value) } 
0123このような何かを探して、その列のカスタムチェーン可能クエリこのように使用するには

MyModel.dwhere(key, value) 
関連する問題