كيف يمكنني إضافة سمة إلى نموذج المستخدم؟

أحاول تعديل إضافة.
فشل الكود التالي وألقى خطأ مثل:

#  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 لمحاولة العثور على أمثلة لما تحاول القيام به (لا يمكنني معرفة ما تحاول القيام به بالضبط).

تحقق من discourse-calendar. يضيف فئة Event، والتي تبدو مشابهة جدًا لما تحاول القيام به.

هناك عدد من الإضافات التي تحتوي على كتلة reloadable_patch مماثلة.

إعجاب واحد (1)

شكرا على الرد!
لقد قمت للتو بإنشاء جدول جديد وأريد إضافة أحد أعمدة الجدول إلى جدول المستخدم.

إعجاب واحد (1)

لقد قمت بتغيير

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:
هل يمكن لأحد مساعدتي؟