# 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. Не могли бы вы подсказать, что здесь не так?
Заранее большое спасибо!
Извините, это может быть не очень полезно, но это быстро.
То, что вы ожидаете как массив, имеет значение nil. Возможно, args равен nil и должен быть []?
Вы также можете посмотреть GitHub - discourse/all-the-plugins · GitHub, чтобы найти примеры того, что вы пытаетесь сделать (я не совсем понимаю, что именно вы пытаетесь сделать).
Ознакомьтесь с плагином discourse-calendar. Он добавляет класс Event, который, похоже, довольно аналогичен тому, что вы пытаетесь сделать.
Хотя есть множество плагинов, в которых есть похожий блок reloadable_patch.