Переопределение сохранения в Ruby on Rails - PullRequest
0 голосов
/ 10 сентября 2018

Здравствуйте, я хочу переопределить метод сохранения в ruby, но при этом я получаю следующая ошибка при сохранении объекта с некоторыми изменениями

    User.name = "alex"
    User.save

ArgumentError: неверное количество аргументов (1 для 0)

Мой код как ниже

class ActiveRecord::Base

  def save()
      p "in My save\n"
      Multidb.use(:default) do
          p "calling super\n"
      super()
      end
      p "saved\n"
  end

end

1 Ответ

0 голосов
/ 10 сентября 2018

Я думаю, что это ужасная идея - переопределить такой важный метод публичного ActiveRecord API.

Но если вы действительно хотите переопределить save, то вы должны позволить вашему save методу получать те же аргументы, что и original save метод , и передавать эти аргументы также super.

def save(*args)
  # ...
  Multidb.use(:default) do
    super(*args)
  end
  # ...
end
...