Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/55.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/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 设计不可侵犯:邀请后确认_Ruby On Rails_Ruby On Rails 3_Devise_Actionmailer_Invite - Fatal编程技术网

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