0

所以我刚刚安装了优点 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\"}>
4

0 回答 0