0

そのため、メリット ジェムをインストールし、それを使用してアプリケーション内にバッジを実装しています。config/initializers/merit.rbファイル内のバッジを次のように定義します。

badge_id = 0
[{
  id: (badge_id = badge_id + 1),
  name: 'badge-one',
  custom_fields: { test_id: 'sample_id' }
}].each do |attrs|
  Merit::Badge.create! attrs
end

このバッジは、ユーザーが作成されたときにユーザーに与えられます。ユーザーはメソッドuser_controller.rb内で作成されます。create

grant_on 'user#create', badge_id: 1, badge: 'badge-one', to: @user

何らかの理由で、新しいユーザーが作成されたときに、バッジが報われません。入力するMerit::Badge.find(1)と、バッジが実際に定義されていることがわかります。ただし、User.first.badgesコンソールに入力すると、空の配列が返されます。ユーザーがサインアップしたときにバッジが報われないのはなぜですか? この問題の解決に役立つ追加情報が必要な場合はお知らせください。

詳細情報を提供するために編集

Merit::Badge.find(1).inspectコンソール内で実行すると、次のようになります。

#<Merit::Badge id: 1, name: \"badge-one\", level: nil, description: nil, custom_fields: {:test_id=>\"sample_id\"}>
4

0 に答える 0