gpt4 book ai didi

ruby-on-rails - 在 Rails 中发送项目邀请

转载 作者:行者123 更新时间:2023-12-04 17:58:08 25 4
gpt4 key购买 nike

大家好,我正在寻找一种向我的 Rails 应用程序添加邀请策略的方法。我正在使用 Devise 进行身份验证,并且喜欢 devise_invitable 的外观,但据我所知,该 gem 只允许您邀请新用户加入系统。

在我的应用中,用户可以邀请其他用户(使用电子邮件)加入他当前的项目。如果该电子邮件地址存在,则添加用户;如果该地址不存在,我想向该电子邮件地址发送特定于项目的邀请。如果用户已经有一个账户,她可以登录并将她的账户绑定(bind)到该项目。如果没有,她可以创建一个新帐户。

有人对在哪里寻找这样的系统有任何建议吗?

最佳答案

# app/models/invite.rb
class Invitation < ActiveRecord::Base
validates_uniqueness_of :email, :scope => :project_id
belongs_to :project
has_many :users
after_save :email_invite_if_no_user

private
def email_invite_if_no_user
unless User.find_by_email(email)
UserMailer.send_invite(self).deliver
end
end
end

# config/routes.rb
resources :projects do
resources :invites
end

# app/controllers/invites_controller.rb
class InvitesController < ActionController
before_filter :get_project

def new
# render invite form
end

def create
@invite = Invite.new(params[:invite])
@invite.project_id = @project.id
if @invite.save
flash[:message] = "Successfully invited #{params[:invite][:email]}"
redirect_to @project
else
flash[:error] = "Could not invite #{params[:invite][:email]}"
render :new
end
end

private
def get_project
@project = Project.find(params[:project_id])
end
end

关于ruby-on-rails - 在 Rails 中发送项目邀请,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4317854/

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