设计可邀请的回调:未定义的方法“before_invitation_created”

Devise invitable callback: undefined method `before_invitation_created'

我在使用 devise_invitable 中的回调时遇到问题 - 具体来说,它们似乎未定义。

如果我尝试添加:

before_invitation_created :set_pending_invite

对于我的用户模型,我收到以下错误

未定义方法`before_invitation_created'

是否有让回调被识别的技巧?我需要向我的控制器添加一些东西吗?

我的模型中确实有 :invitable:

class User < ActiveRecord::Base
has_many :pending_sites
rolify :role_cname => 'Group'

devise :invitable, :database_authenticatable, :zxcvbnable,
:recoverable, :rememberable, :trackable, :validatable, :confirmable, :omniauthable, :omniauth_providers => [:saml]

before_invitation_created :set_pending_invite
after_initialize :set_default_role, :if => :new_record?

我遇到了同样的问题。我调查了一下,master 分支定义了那些回调,但它们还没有发布。在撰写本文时,最新版本是 2015 年 12 月 17 日发布的 1.5.5,直到 2015 年 12 月 29 日才提交新回调 (https://github.com/scambra/devise_invitable/commit/3834b65bf1b979a4e9c8c1ac9769ea881e350c80)

此外,如果你想使用最新的,你可以在你的 Gemfile 中这样写:

gem 'devise_invitable', :git => 'git@github.com:scambra/devise_invitable.git'