Как создать ссылку истечения в рельсах для страницы редактирования - PullRequest
0 голосов
/ 26 ноября 2018

Я сгенерировал почтовую функциональность.Мне нужно создать ссылку истечения срока действия на почте (для страницы редактирования для одной из моих моделей).Мне просто нужно добавить ссылку на срок действия в шаблоне.Как бы я это сделал?Кто-нибудь может мне помочь?

В mailer.template

<h5>edit startup</h5>
 <%= link_to 'Edit', edit_booking_url(@booking)%>

Messages Mailer
class MessagesMailer < ApplicationMailer
 def send_email(booking_users)
  @booking_users = User.includes(:roles).where(roles: {:id=> 2})
  mail(to: "penny12@gmail.com")
 end
end

To get the booking id I have called this mailer in the booking model
  def booking_email
    @booking = Booking.find(self.id)
    BookingMailer.send_email.deliver
  end

1 Ответ

0 голосов
/ 26 ноября 2018

Это возможно только для URL-адреса вложения AWS с помощью скрепки с использованием функции скрепки или несущей волны, когда передается маркер метки времени.: D

Вы все еще можете достичь желаемого следующим образом

Case-1 : Вы отправляете по электронной почте ссылку, и вы хотите предоставить доступ для редактирования ссылки на 20 (время истечения) мин.

Когда вы отправите письмо, установите для столбца expiry_date в объекте значение Time.now + 20.minute Поэтому, когда он щелкнет, он будет перенаправлен из действия редактирования, если пересек столбец expiry_date datetime.

Case-2 : Выше case-1 не ваше намерение, и вы хотите прекратить действие пользователя, если он передает срок действия, чтобы заполнить форму редактирования.

То же самое, когдапользователь нажимает на ссылку изменить URL-адрес полученной почты (установите expiry_date на Time.now + 20.minute), он будет перенаправлен на редактирование формы.Когда он подаст форму и будет вызвано действие create/update.Он перенаправит его на другую страницу без обновления формы.

Дополнительные функции и условия необходимо добавить в соответствии с вашими случаями.

Обновление: согласно запросу

  1. Когда пользователь нажимает ссылку для редактирования, в действии редактирования установите expiry_date в Time.now + 1.day
  2. В действии Update перенаправить, если передано expiry_date, в противном случае обновить данные.
  3. При повторном запуске действия почты установите expiry_date на ноль.

выше будет соответствовать вашим требованиям.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...