简体   繁体   中英

Issue with ActionMailer Mandrill in Rails

I have a cab booking platform created in Rails. I am using the Mandrill smtp settings in production to send booking confirmation mails to users of my platform. Then I generated a mailer called user_mailer with the following code:

class UserMailer < ActionMailer::Base
  default :from => "my_company_email"
  def booking_confirmation(user)
    @user = user
    mail(:to => user.email, :subject => "Booking Confirmation")
  end
end

Then I created booking_confirmation.html.erb page in user_mailer views with some generic content inside. Finally I called the user_mailer in one of my controllers as follows:

UserMailer.booking_confirmation(current_user).deliver

My problem is that when I want to include more details (such as Travel date, Travel time, etc.) within the mail delivered to my customer. I am trying this within my booking_confirmation.html.erb page: <%= @user.bookings.last.date %> to display the Travel Date to the customer. But this doesn't get displayed. Why is it so?

I would pass in the booking like UserMailer.booking_confirmation(current_user, booking.id).deliver

then in the class UserMailer I would do

class UserMailer < ActionMailer::Base
  default :from => "my_company_email"
  def booking_confirmation(user, booking)
    @user = user
    @booking = Booking.find(booking)
    mail(:to => user.email, :subject => "Booking Confirmation")
  end
end

now on your erb you should have @booking.date to use

Its not a mandrill issue.something wrong with application code.
Check whether your following code has the date value present for last bookings.

@user.bookings.last.date

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM