如何为不同的用例定制 Devise Invitable
How to customize Devise Invitable for different use cases
我正在尝试按照 Devise Invitable here 的文档为不同的用户类型发送不同的电子邮件,在我的例子中是 partners 和 clients .
所以它说要在你的 Devise 模型中添加,在我的例子中是 User.rb
,下面的代码。
....
attr_accessor :invitation_instructions
....
def self.invite_partner!(attributes={}, invited_by=nil)
self.invite!(attributes, invited_by) do |invitable|
invitable.invitation_instructions = :partner_invitation_instructions
end
end
def self.invite_client!(attributes={}, invited_by=nil)
self.invite!(attributes, invited_by) do |invitable|
invitable.invitation_instructions = :client_invitation_instructions
end
end
然后从我的控制器,当新用户注册时,我正在呼叫
....
if current_user.is_client?
user.invite_client!(user, current_user)
else
user.invite_partner!(user, current_user)
end
当我这样做时,我得到的错误是
undefined method 'invite_client!' for #<User:0x007ffbcdfabd08>
这有点令人困惑,因为该方法是在用户模型中定义的,所以我认为至少它是已定义的。
如果能帮助解决这个问题并让这个设置正常工作,我们将不胜感激!
我认为这些是 class 方法,你应该像 User.invite_client!
那样调用它,并在方法中传递你的参数。
invite_partner!
也一样
我正在尝试按照 Devise Invitable here 的文档为不同的用户类型发送不同的电子邮件,在我的例子中是 partners 和 clients .
所以它说要在你的 Devise 模型中添加,在我的例子中是 User.rb
,下面的代码。
....
attr_accessor :invitation_instructions
....
def self.invite_partner!(attributes={}, invited_by=nil)
self.invite!(attributes, invited_by) do |invitable|
invitable.invitation_instructions = :partner_invitation_instructions
end
end
def self.invite_client!(attributes={}, invited_by=nil)
self.invite!(attributes, invited_by) do |invitable|
invitable.invitation_instructions = :client_invitation_instructions
end
end
然后从我的控制器,当新用户注册时,我正在呼叫
....
if current_user.is_client?
user.invite_client!(user, current_user)
else
user.invite_partner!(user, current_user)
end
当我这样做时,我得到的错误是
undefined method 'invite_client!' for #<User:0x007ffbcdfabd08>
这有点令人困惑,因为该方法是在用户模型中定义的,所以我认为至少它是已定义的。
如果能帮助解决这个问题并让这个设置正常工作,我们将不胜感激!
我认为这些是 class 方法,你应该像 User.invite_client!
那样调用它,并在方法中传递你的参数。
invite_partner!