0

我在这种情况下遇到了麻烦。我遵循了本手册,但它对我没有帮助。

这是我的文件:

路线.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'
)

徽章规则.rb

module Merit
  class BadgeRules
    include Merit::BadgeRulesMethods

    def initialize
      grant_on 'registrations#create', badge: 'just-registered', model_name: 'User'
    end
  end
end

注册控制器.rb

def create
  @user = build_resource
  super
end

如果有意义 - 当用户注册时,merit_actions 表添加了一条新记录target_model = 'registrations', not 'users'

有人可以告诉我,我做错了什么吗?

4

1 回答 1

0

这是预期的行为,merit_actions在 gem 内部并保存controller_path为它的target_model属性。它令人困惑,但它不应该影响您的应用程序。徽章是否被授予?

于 2014-03-04T00:53:56.720 回答