Acts_as_Inviteable插件不会在Ruby on Rails中发送邀请

我一直在尝试创建每个现有用户都可以发送的beta邀请,并希望能够使用名为acts_as_inviteable
http://github.com/brianjlandau/acts_as_inviteable的插件

我想知道是否有人有直接经验.当我检查控制台时,它似乎正在创建正确的查询,但没有出现与电子邮件或电子邮件相关的错误.

我很想使用Ryan Bates关于测试版邀请的优秀教程并自己编写,但我希望能有所作为.我们似乎无法弄明白.

最佳答案 您需要解决许多问题:

将此行添加到您的一个配置块(在environment.rb或config / environment中的每个文件中):

config.action_mailer.default_url_options = {:host => 'somewhere.com'}

在第3行的app / models / invitation.rb中,您可以调用attr_accessible:recipient_email,这将阻止您批量分配发件人.您应该将其更改为:

attr_accessible :recipient_email, :sender, :sender_id

invitations_controller.rb也应如下所示:

class InvitationsController < ApplicationController
  before_filter :require_analyst

  def new
    @invitation = Invitation.new
  end

  def create
    @invitation = Invitation.new(params[:invitation])
    @invitation.sender = current_analyst
    if @invitation.save
      flash[:notice] = "Thank you, invitation sent."
      redirect_to root_url
    else
      render :action => 'new'
    end
  end

end

除非您已登录(因为您需要发件人,在这种情况下是current_analyst而不是@current_user),否则您实际上无法发送邀请,因此已删除具有不同逻辑的行,具体取决于是否已登录.

此外,邀请模型将自动发送电子邮件,因此不需要调用Mailer.deliver_invitation(@ invitation,signup_url(@ invitation.token))(实际上它必须是AnalystInvitationMailer.deliver_invitation(@invitation))

你可以在这里看到一个完整的工作补丁:http://gist.github.com/290911

点赞