Ruby on Rails - камень заслуги grant_on не запускается
Поэтому я только что установил драгоценный камень достоинств и использовал его для реализации значков в своем приложении. Я определяю значок внутри 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\"}>