我一直在尝试创建每个现有用户都可以发送的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