我在这种情况下遇到了麻烦。我遵循了这本手册,但它对我没有帮助。
这是我的文件:
routes.rb:
devise_for :users, controllers: { omniauth_callbacks: 'users/omniauth_callbacks', registrations: 'registrations' }
优点.rb:
Merit.setup do |config|
config.checks_on_each_request = true
end
Merit::Badge.create!(
id: 1,
name: 'just-registered',
description: 'Badge for register'
)
badge_rules.rb
module Merit
class BadgeRules
include Merit::BadgeRulesMethods
def initialize
grant_on 'registrations#create', badge: 'just-registered', model_name: 'User'
end
end
end
registrations_controller.rb
def create
@user = build_resource
super
end
如果有意义 - 当用户注册时,merit_actions表添加了一条新记录target_model = 'registrations', not 'users'
有人可以告诉我,我做错了什么吗?
这是
预期行为,merit_actions
是 gem 的内部行为,并保存controller_path
因为它是target_model
属性。这很令人困惑,但它不应该影响您的应用程序。徽章是否被授予?