Как использовать Ransacker для столбца JSONB с несколькими динамическими ключами c - PullRequest
0 голосов
/ 26 января 2020

Один из столбцов в моей модели - jsonb. Ключи для этого json являются идентификаторами отдельной модели. Вот пример того, что вы можете найти в одном из них:

pricing_latest: {"1"=>5000000, "2"=>1220000 , "5"=>320000}>

Я хотел бы использовать Ransack для этого столбца. Глядя на документацию , я вижу, что могу использовать что-то вроде этого (в этом примере при поиске в столбце с именем properties для записей, содержащих ключ с именем link_type):

ransacker :link_type do |parent|    
  Arel::Nodes::InfixOperation.new('->>', parent.table[:properties], Arel::Nodes.build_quoted('link_type'))
end

Однако, как Я понимаю, что с учетом вышесказанного мне придется создавать по одному на ключ. Есть ли способ, которым я могу адаптировать приведенный выше код, чтобы я передавал значение ключа в качестве аргумента вместо его жесткого кодирования? Как будет вызываться sort_link?

...