首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建Rails通讯列表

创建Rails通讯列表
EN

Stack Overflow用户
提问于 2014-04-30 16:00:38
回答 2查看 448关注 0票数 4

我见过这个问题问了很多人,寻求帮助创建一个通讯系统。

我有一个通讯邮件设置与使用roadie宝石。我需要帮助弄清楚如何设置订阅部分的通讯。我一直在从一个邮件客户端手工处理通讯,所以我有大约300个订阅者。

谁能帮我设置代码,以便所有注册用户将自动订阅通讯,我可以导入我的300个电子邮件订阅者的名单。还应该有一个取消订阅链接。对我和其他很多人来说,帮助是非常有帮助的。

newsletter_mailer.rb:

代码语言:javascript
复制
class NewsletterMailer < ActionMailer::Base
  default from: "from@example.com"

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

通讯财务主任:

代码语言:javascript
复制
def send
 @newsletter = Newsletter.find(:params['id'])
 @recipients = Recipient.all
 @recipients.each do |recipient|
   Newsletter.newsletter_email(recipient, @newsletter).deliver
 end
end

用户控制器:

代码语言:javascript
复制
 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
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-08 14:57:59

听起来你需要UserRecipient之间一对一的关系。

代码语言:javascript
复制
class User < ActiveRecord::Base
  has_one :recipient
  ...
end

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

然后,在注册过程中,只需创建用户的收件人:

代码语言:javascript
复制
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 )的更多详细信息,请参见create_association

票数 2
EN

Stack Overflow用户

发布于 2014-04-30 16:13:40

这是经典的many-to-many关系。

Rails中,它是由has_and_belongs_to_many实现的,通常被称为habtm

了解关系的一个好的开端是RubyOnRail

基本上,您需要一个Newsletter模型、一个Subscriber模型和一个表newsletters_subscribers

代码语言:javascript
复制
class Newsletter < ActiveRecord::Base
  has_and_belongs_to_many :subscribers
end
class Subscriber < ActiveRecord::Base
  has_and_belongs_to_many :newsletters
end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23392863

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档