Rails: How to provide a public link in a mail
Lets say we have a
user with a
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
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.