Posted 24 days ago. Visible to the public.

Rails: How to provide a public link in a mail

Lets say we have a user with a contract whereas contract is a mounted carrierwave file.

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

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

HTML email

Copy
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 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.

Once an application no longer requires constant development, it needs periodic maintenance for stable and secure operation. makandra offers monthly maintenance contracts that let you focus on your business while we make sure the lights stay on.

Author of this card:

Avatar
Emanuel De
Last edit:
10 days ago
by Tobias Kraze
About this deck:
We are makandra and do test-driven, agile Ruby on Rails software development.
License for source code
Posted by Emanuel De to makandra dev