Read more

Rails: How to provide a public link in a mail

Emanuel
March 28, 2018Software engineer at makandra GmbH

Lets say we have a user with a contract whereas contract is a mounted carrierwave Show archive.org snapshot file.

Illustration UI/UX Design

UI/UX Design by makandra brand

We make sure that your target audience has the best possible experience with your digital product. You get:

  • Design tailored to your audience
  • Proven processes customized to your needs
  • An expert team of experienced designers
Read more Show archive.org snapshot

Now we want to send the link to the contract in a mail. For this use case join the root_url with the public contract path in the mailer view:

Plain text email

URI.join(root_url, @user.contract.url)

HTML email

link_to('Show contract', URI.join(root_url, @user.contract.url).to_s)

Note: You need to follow http://guides.rubyonrails.org/action_mailer_basics.html#generating-urls-in-action-mailer-views Show archive.org snapshot or Make ActionMailer use the current request host and protocol for URL generation to have the correct path and port. If you don't store the files local but remote (e.g. S3) the url will already include the full url.

Posted by Emanuel to makandra dev (2018-03-28 15:27)