【发布时间】:2016-07-02 01:07:03
【问题描述】:
我已经设置了我的配置以在 Heroku 上使用 Mailtrap,并且可以确认我已经设置了大部分。这意味着我会收到电子邮件,但前提是我不调用用户模型上的方法。使用@user.name 个性化电子邮件并使用@user.email 自动发送给用户会导致无方法错误。我想这可能与我从用户模型而不是我自定义的设计用户控制器发送电子邮件这一事实有关,所以我添加了一个 create 方法。什么都没做。错误说undefined method 'email' for nil:NilClass
在我的用户模型中,我有
class User < ActiveRecord::Base
after_create :new_user
validates :email, presence: true, uniqueness: true, if: -> { self.email.present? }
private
def new_user
UserMailer.new_user(@user).deliver_now
end
end
在我的用户邮件中我有
class UserMailer < ApplicationMailer
def new_user(user)
@user = user
mail(to: @user.email, subject: 'You will be notified when your account is activated.')
end
end
然后在从 Devise::RegistrationsController 扩展的用户控制器中,我有
class UsersController < Devise::RegistrationsController
def create
@user = User.new(sign_up_params)
end
private
def sign_up_params
params.require(:user).permit(:firstname, :lastname, :email, :password, :password_confirmation, :approved)
end
end
有什么想法吗?
【问题讨论】:
标签: ruby-on-rails devise actionmailer