Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/52.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby-on-Rails-Merit-Gem-grant\u未被触发_Ruby On Rails_Ruby_Ruby On Rails 4_Badge_Merit Gem - Fatal编程技术网

Ruby-on-Rails-Merit-Gem-grant\u未被触发

Ruby-on-Rails-Merit-Gem-grant\u未被触发,ruby-on-rails,ruby,ruby-on-rails-4,badge,merit-gem,Ruby On Rails,Ruby,Ruby On Rails 4,Badge,Merit 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 创建用户时,此徽章将

因此,我刚刚安装了,并一直在使用它在我的应用程序中实现徽章。我在
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\u 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)中运行时得到的结果。检查控制台内部的

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

放置优点::Badge.find(1)。检查产生的输出几乎与
优点::Badge.find(1)
完全相同@Tarynest是的,但我真的想看看:)也就是说,别告诉我你看了奖章。。。展示给我们。当然,我们会在编辑中发布它!