Ruby on rails 设计不可侵犯:邀请后确认
我覆盖设计的确认!方法向我的用户发送欢迎消息:Ruby on rails 设计不可侵犯:邀请后确认,ruby-on-rails,ruby-on-rails-3,devise,actionmailer,invite,Ruby On Rails,Ruby On Rails 3,Devise,Actionmailer,Invite,我覆盖设计的确认!方法向我的用户发送欢迎消息: class User < ActiveRecord::Base devise :invitable, :database_authenticatable, :registerable, :recoverable, :rememberable, :confirmable, :validatable, :encryptable # ... # Devise confirm! method overriden
class User < ActiveRecord::Base
devise :invitable, :database_authenticatable, :registerable, :recoverable,
:rememberable, :confirmable, :validatable, :encryptable
# ...
# Devise confirm! method overriden
def confirm!
UserMailer.welcome_alert(self).deliver
super
end
end
class用户
我尝试了贝诺罗的答案,起初它似乎是有效的——但是,当用户接受邀请并以无效形式填写表单时,它实际上会覆盖使邀请无效的令牌
相反,可以使用回调来执行此操作:
class User < ActiveRecord::Base
devise :invitable, :database_authenticatable, :registerable, :recoverable,
:rememberable, :confirmable, :validatable, :encryptable
after_invitation_accepted :send_welcome_email
def send_welcome_email
end
end
class用户
算出:太好了,谢谢!这只是一个关于验证的小评论<代码>接受邀请可能无法生成有效的模型,例如,如果受邀请用户接受邀请时未满足密码限制<代码>自我确认!如果model.valid?捕获此信息,并且在验证错误的情况下不让欢迎电子邮件漏掉。时间已更改。这就是答案。谢谢@Dandan
class User < ActiveRecord::Base
devise :invitable, :database_authenticatable, :registerable, :recoverable,
:rememberable, :confirmable, :validatable, :encryptable
# ...
# devise confirm! method overriden
def confirm!
welcome_message
super
end
# devise_invitable accept_invitation! method overriden
def accept_invitation!
self.confirm!
super
end
# devise_invitable invite! method overriden
def invite!
super
self.confirmed_at = nil
self.save
end
private
def welcome_message
UserMailer.welcome_message(self).deliver
end
end
class User < ActiveRecord::Base
devise :invitable, :database_authenticatable, :registerable, :recoverable,
:rememberable, :confirmable, :validatable, :encryptable
after_invitation_accepted :send_welcome_email
def send_welcome_email
end
end