每当在我的 Rails 3 应用程序中创建新记录时,我都会发送一封电子邮件。
def new_resource_notification(resource)
@resource = resource
mail(:to => "admin@domain.com", :bcc => User.all.map(&:email), :subject => "New item added")
end
资源控制器
# POST /resources
# POST /resources.json
def create
@resource = Resource.create( params[:resource] )
@resource.uploadedip_string = request.env['REMOTE_ADDR']
respond_to do |format|
if @resource.save
UserMailer.new_resource_notification(@resource).deliver
format.html { redirect_to @resource, notice: 'Resource was successfully created.' }
format.json { render json: @resource, status: :created, location: @resource }
else
format.html { render action: "new" }
format.json { render json: @resource.errors, status: :unprocessable_entity }
end
end
end
我正在使用 Devise 进行用户身份验证,并添加了一个名为email_subscribe
. 我还在用户配置文件视图中添加了一个简单的复选框来启用和禁用订阅。
目前一切正常。创建新记录后,所有用户都会收到一封电子邮件,用户可以设置和取消订阅。我现在要做的是让两者一起工作。
如何只向 email_subscribe 为 true 的用户发送电子邮件?