所以我刚刚安装了优点 gem,并一直在使用它在我的应用程序中实现徽章。我将文件中的徽章定义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\"}>