gpt4 book ai didi

ruby-on-rails - 为 Rails 创建时事通讯列表

转载 作者:行者123 更新时间:2023-12-03 15:53:01 26 4
gpt4 key购买 nike

我看到这个问题被问了很多,人们在创建新闻通讯系统方面寻求帮助。

我有一个使用 roadie gem 的通讯邮件设置。我需要帮助弄清楚如何设置时事通讯的订阅者部分。我一直在通过邮件客户端手工制作时事通讯,所以我有大约 300 名订阅者。

有人可以帮我设置代码,以便所有注册用户自动订阅时事通讯,我可以将我的 300 个电子邮件订阅者导入列表。也应该有一个退订链接。援助对我和那里的许多其他人都非常有帮助。

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

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

用户 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

最佳答案

听起来您需要 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

http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html#method-i-has_one欲知更多详情 has_one方法如 create_association .

关于ruby-on-rails - 为 Rails 创建时事通讯列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23392863/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com