Home > Back-end >  LIKE in .where with audited gem
LIKE in .where with audited gem

Time:12-12

I would like find audited changes of state but i dont know who find audited changes from any states

I try this and its work but i would like find last audited change from any states to offboarded:

product.audits.where("audited_changes LIKE '%state:%published%offboarded%'").last

I would like something like this: LIKE '%state:%ANY WORD%offboarded%'

audited change format:

audited_changes: {"state"=>["published", "offboarded"]}

I want find this result too for example:

audited_changes: {"state"=>["hidden", "offboarded"]}

I use Rails with postgresql

CodePudding user response:

I think you can use the @> operator ("contains" operator) in your where clause:

product.audits.where("audited_changes @> '{\"state\": [\"published\", \"offboarded\"]}'")

Docs for different data types:

  • Related