Source Code
https://github.com/stevepolitodesign/unsubscribe
Demo
Docs
π Unsubscribe
Automatically unsubscribe from emails in Rails.
π Installation
Add this line to your application's Gemfile:
gem 'unsubscribe'
And then execute:
$ bundle
Or install it yourself as:
$ gem install unsubscribe
Then run the installation commands:
rails g unsubscribe:install rails unsubscribe:install:migrations rails db:migrate
π Usage
Unsubscribe::Owner
- Add
include Unsubscribe::Owner
to aModel
. TheModel
must have anemail
column.
class User < ApplicationRecord include Unsubscribe::Owner end
Available Methods
User.first.mailer_subscriptions # => #<ActiveRecord::Associations::CollectionProxy [#<Unsubscribe::MailerSubscription>, #<Unsubscribe::MailerSubscription>] > User.first.subscribed_to_mailer? "MarketingMailer" # => true/false User.first.to_sgid_for_mailer_subscription # => #<SignedGlobalID:123 ...>
Unsubscribe::Mailer
- Add
include Unsubscribe::Mailer
to aMailer
. - Optionally call
unsubscribe_settings
to set aname
anddescription
. This will be used in the unsubscribe page. - Set
mail to:
to@recipient.email
. The@recipient
is an instance of whatever Classinclude Unsubscribe::Owner
was added to.
class MarketingMailer < ApplicationMailer include Unsubscribe::Mailer unsubscribe_settings name: "Marketing Emails", description: "Updates on promotions and sales." def promotion mail to: @recipient.email end end
- Call the
Mailer
with arecipient
parameter.
MarketingMailer.with( recipient: User.first ).promotion.deliver_now
Available Methods
Unsubscribe::MailerSubscription.first.action # => "Unsubscribe from"/"Subscribe to" Unsubscribe::MailerSubscription.first.call_to_action # => "Unsubscribe from Marketing Emails"/"Subscribe to Marketing Emails" Unsubscribe::MailerSubscription.first.description # => "Updates on promotions and sales." Unsubscribe::MailerSubscription.first.name # => "Marketing Emails"
Unsubscribe Link
- Add the
@unsubscribe_url
link to theMailer
.
<%= link_to "Unsubscribe", @unsubscribe_url %>
βοΈ Customize Templates
Run rails g unsubscribe:views
if you want to modify the existing templates.
π I18n
The language used for Unsubscribe::MailerSubscription#action
can be translated.
# config/locales/en.yml en: unsubscribe: action: subscribe: "Subscribe to" unsubscribe: "Unsubscribe from"
π Contributing
If you'd like to open a PR please make sure the following things pass:
bin/rails test bundle exec standardrb
π License
The gem is available as open source under the terms of the MIT License.
Top comments (0)