Email Subscriptions
A public mailing list signup for non-authenticated visitors.
Model (app/models/subscription.rb)
email– required, unique, validated withURI::MailTo::EMAIL_REGEXPahoy_visit_id– required; links to Ahoy visit for analytics tracking
Controller (app/controllers/info/subscriptions_controller.rb)
PublicController with:
show– confirmation pagecreate– creates subscription
Spam protection uses the same honeypot pattern as the contact form (hidden website, telephone, address fields). The controller finds or creates an Ahoy::Visit record and associates the subscription with it.
Routes
resources :subscriptions, only: [:create, :show]
Admin
Subscriptions are viewable in ActiveAdmin with email and visit filters.