Rails 4 + 优点 + 设计:注册后为用户设置徽章



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

这是我的文件:

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属性。这很令人困惑,但它不应该影响您的应用程序。徽章是否被授予?

最新更新