使用设计邀请。仅在用户设置密码后才能创建用户

时间:2016-11-16 09:03:52

标签: ruby ruby-on-rails-4 devise-invitable

def create
    if User.invite!(user_params)
        flash[:success] = t('flashes.users.create_success')
    else
        flash[:error] = t('flashes.users.create_error')
    end
    redirect_to company_path(id: company.slug)
end

User.invite!将创建用户,然后发送邀请以设置密码。我只希望它发送设置密码的邀请,然后只有在用户设置了密码时才会保留用户。

1 个答案:

答案 0 :(得分:1)

我不会惹恼那样的设计邀请实现。

可能使用枚举向用户添加状态列,以便您可以隔离未接受其邀请的用户,并且作为评论者之一表示稍后删除过时的用户。

enum status: {invited: 0, accepted: 1}

然后您可以执行以下操作:

User.invite!(status: "invited")

当用户通过挂钩gem提供的回调来接受时,你必须设置“已接受”状态(参见https://github.com/scambra/devise_invitable)。