そのため、メリット ジェムをインストールし、それを使用してアプリケーション内にバッジを実装しています。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\"}>