jeudi 12 décembre 2019

How to Test a Sender from Rails on Console

I have the following sender set up for Rails:

Users.rb

def send_email
    mail_role = UserMailer.with(user: self)

if self.role_name == "Property User"
  if self.admin?
    mail_role.new_admin.deliver_later
  else
    mail_role.new_user.deliver_later
  end
end

  def self.create_test
    @counter ||= 0
    @counter += 1
    User.create(
      email: "#{@email_counter}@test.user",
      password: "",
    )
  end

I want to test that this action sends an email on rails console so I did this:

sampleAdminUser = User.find(1)
mail_role = UserMailer.with(user: self)
mail_role.new_admin

I get

UserMailer#new_admin: processed outbound mail in 0.4ms

But when I used mail_role.new_admin.deliver_later I get:

UserMailer#new_admin: processed outbound mail in 0.6ms
ActiveRecord::AssociationTypeMismatch: User(#70304380436700) expected, got main which is an instance of Object(#70304374639580)

I just want to send an email and see the results. What am I doing wrong?

Aucun commentaire:

Enregistrer un commentaire