Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.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 4 轨道4+;优点+;设计:注册后为用户设置徽章_Ruby On Rails 4_Devise_Merit Gem - Fatal编程技术网

Ruby on rails 4 轨道4+;优点+;设计:注册后为用户设置徽章

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

在这种情况下我遇到了麻烦。我跟着,但对我没有帮助

这是我的档案:

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.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
。我需要查看该应用程序以提供更多帮助。