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 です。おそらく argsnil[] である必要があるのではないでしょうか?

また、GitHub - discourse/all-the-plugins を見て、あなたがやろうとしていることの例を見つけることができるかもしれません(あなたが何をしようとしているのかよくわかりません)。

Event クラスを追加する discourse-calendar をチェックしてください。これは、あなたがやろうとしていることに非常に似ているようです。

ただし、同様の reloadable_patch ブロックを持つプラグインがたくさんあります。

「いいね!」 1

返信ありがとうございます!
新しいテーブルを作成し、そのテーブルの列の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:
どなたか助けていただけますか?