Ruby on rails 4 轨道4+;优点+;设计:注册后为用户设置徽章
在这种情况下我遇到了麻烦。我跟着,但对我没有帮助 这是我的档案: routes.rb:Ruby on rails 4 轨道4+;优点+;设计:注册后为用户设置徽章,ruby-on-rails-4,devise,merit-gem,Ruby On Rails 4,Devise,Merit Gem,在这种情况下我遇到了麻烦。我跟着,但对我没有帮助 这是我的档案: routes.rb: devise_for :users, controllers: { omniauth_callbacks: 'users/omniauth_callbacks', registrations: 'registrations' } merit.rb: Merit.setup do |config| config.checks_on_each_request = true end Merit::Badge
devise_for :users, controllers: { omniauth_callbacks: 'users/omniauth_callbacks', registrations: 'registrations' }
merit.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
注册\u controller.rb
def create
@user = build_resource
super
end
如果有意义的话-当用户注册时,为了奖励,actions表添加了一个新记录,其target\u model='registrations',而不是'users'
有人能告诉我,我做错了什么吗?这是预期的行为,
优点行动
是gem内部的,并将控制器路径
保存为目标模型
属性。这是令人困惑的,但它不应该影响您的应用程序。是否授予徽章?您需要在注册中添加到::action_user
#创建授予规则如果我们使用到::action_user
以上定义的规则,它会起作用,但是如果我们使用designe`confirmable`功能会怎么样?在这种情况下,它不会创建徽章,这可能是您应该瞄准的另一个端点,而不是注册#create
。我需要查看该应用程序以提供更多帮助。