При назначении атрибутов вы должны передать ha sh в качестве аргумента, строка передана - PullRequest
0 голосов
/ 12 апреля 2020

У меня есть строковое поле poitable_type, например "Town", "Department", "Region". Я пытаюсь передать эту строку (poitable_type) в качестве аргумента методу, подобному:

update_counters("Towns")


def update_counters(poitable_type)
  count = Model.where(poitable_type: "poitable_type").count                          
  Model.update("#{poitable_type.downcase}_counter: #{count}")
end

Но я получаю ошибку: при назначении атрибутов вы должны передать в качестве аргумента га sh, String передано.

1 Ответ

1 голос
/ 12 апреля 2020

вы вызываете метод обновления неправильно. Метод обновления Active Record ожидает пары ключ-значение в качестве аргументов. Вы пытаетесь интерполировать строку в качестве аргумента и ожидаете, что она будет вести себя как ха sh.

Эта часть должна быть изменена следующим образом.

Model.update("#{poitable_type.downcase}_counter": count)

Это будет делать обмануть.

...