Create a mailing list for Rails

I saw that this question was asked a lot by people who were looking for help in creating a newsletter system.

I have a roadie pearl mailing list. I need help figuring out how to set up the subscription part of the newsletter. I do newsletters manually from an email client, so I have about 300 subscribers.

Can someone help me set up the code so that all registered users automatically subscribe to the newsletter and I can import 300 email subscribers to the list. There should also be a link to unsubscribe. Help would be very helpful for me and many other people.

newsletter_mailer.rb:

class NewsletterMailer < ActionMailer::Base
  default from: "from@example.com"

  def weekly(email)
    @newsletter = newsletter
    @recipient = recipient
    mail to: email, subject: "New Dates Weekly"
  end

Newsletter Controller:

def send
 @newsletter = Newsletter.find(:params['id'])
 @recipients = Recipient.all
 @recipients.each do |recipient|
   Newsletter.newsletter_email(recipient, @newsletter).deliver
 end
end

User Controller:

 def settings
    @user = User.find(params[:id])
  end

  def new
    @user = User.new
  end

  def profile
    @profile = User.profile
    @user = User.find(params[:id]) 
  end

  def create
    @user = User.new(user_params)
    if @user.save
      UserMailer.registration_confirmation(@user).deliver
      session[:user_id] = @user.id
      redirect_to root_url, notice: "Thank you for signing up!"
    else
      render "new"
    end
  end

  def show
    @user = User.find(params[:id])    
  end

    def edit
      @user = User.find(params[:id])
end
+4
2

, " " User Recipient:

class User < ActiveRecord::Base
  has_one :recipient
  ...
end

class Recipient < ActiveRecord::Base
  belongs_to :user
  ...
end

:

def create
  @user = User.new(user_params)
  if @user.save
    ...
    @user.create_recipient(:email => @user.email)
    ...
  else
    render "new"
  end
end

has_one create_association . http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html#method-i-has_one.

+2

many-to-many.
Rails has_and_belongs_to_many, habtm.

RubyOnRail-Guides

Newsletter Subscriber newsletters_subscribers.

class Newsletter < ActiveRecord::Base
  has_and_belongs_to_many :subscribers
end
class Subscriber < ActiveRecord::Base
  has_and_belongs_to_many :newsletters
end
0

Source: https://habr.com/ru/post/1538759/


All Articles