Как добавить атрибут к модели User?

Я пытаюсь модифицировать плагин.
Следующий код не сработал и вызвал ошибку, как показано на скриншоте:

# total_points — это таблица с суммой, содержащая колонку "total_earned_points".
module MyModel::UserExtension
  def self.prepended(base)
    base.has_many :user_points, class_name: 'MyModel::UserPoint'
    base.has_one :total_point, class_name: 'MyModel::TotalPoint'
  end
end
 reloadable_patch do |plugin|
    User.class_eval { prepend MyModel::UserExtension }
  end

 add_to_class(:user, :total_earned_points) do
    # self.user_points.sum(:reward_points)
    self.total_point[:total_earned_points]
  end

Я совсем новичок в Rails. Не могли бы вы подсказать, что здесь не так?
Заранее большое спасибо!

Извините, это может быть не очень полезно, но это быстро. :slight_smile:

То, что вы ожидаете как массив, имеет значение nil. Возможно, args равен nil и должен быть []?

Вы также можете посмотреть GitHub - discourse/all-the-plugins · GitHub, чтобы найти примеры того, что вы пытаетесь сделать (я не совсем понимаю, что именно вы пытаетесь сделать).

Ознакомьтесь с плагином discourse-calendar. Он добавляет класс Event, который, похоже, довольно аналогичен тому, что вы пытаетесь сделать.

Хотя есть множество плагинов, в которых есть похожий блок reloadable_patch.

Спасибо за ответ!
Я только что создал новую таблицу и хочу добавить один из её столбцов в таблицу пользователей.

Я изменил

add_to_class(:user, :total_earned_points) do
    # self.user_points.sum(:reward_points)
    self.total_point[:total_earned_points]
end

на

add_to_class(:user, :total_earned_points) do
    # self.user_points.sum(:reward_points)
    self.total_point.read_attribute(:total_earned_points)
end

но это всё равно не работает. :cold_sweat:
Кто-нибудь может помочь?