Запросы на активную запись с store_accesors - PullRequest
0 голосов
/ 10 января 2019

У меня есть база данных, где мне нужно выполнить поиск по конкретной записи, которая имеет определенный вывод. Что делает меня сложным, так это то, что эти значения находятся в 'store_accessor', и поэтому они не всегда там.

Например, если я запускаю Team.last.team_configuration, я получаю это значение ниже, и мне нужны только команды, которые имеют определенные настройки.

<TeamConfiguration:0x00007123456987> {
        :id => 8,
  :owner_id => 6,
:team_type => "football",
  :settings => {
      "disable_coach_add" => false,
    "delink_players_at_18" => true
},
      :type => "TeamConfiguration"

}

Мои мысли были чем-то вроде этих строк, но я продолжаю получать undefined method 'settings' for team_configuration:Symbol

Team.where(:team_configuration.settings['delink_players_at_18'])

Кто-нибудь знает, что я делаю неправильно в этом случае? Я думаю, потому что есть два отделения от основного источника, это вызывает у меня некоторые проблемы. Заранее спасибо!

1 Ответ

0 голосов
/ 10 января 2019

Проблема в том, как работает store_accesors, посмотрите, что написано в документации:

Магазин дает вам тонкую обертку вокруг сериализации с целью хранение хешей в одном столбце. Это как простой ключ / хранилище значений запечатлелось в вашей записи , когда вам не нужна возможность запроса этот магазин вне контекста отдельной записи .

https://api.rubyonrails.org/classes/ActiveRecord/Store.html

Таким образом, возможное решение может заключаться в поиске по этому столбцу, конвертируя ранее хеш того, что вы хотите заштриховать.

Team.where(team_configuration: data.to_s)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...