0
def create
    user = User.create(user_params)
    if user.save
      flash[:notice] = '#{params[:user][:role]} created successfully'
      redirect_to users_path(role: params[:role])
    else
      flash[:errors] = "#{user.errors.full_messages.join(', ')}"
      redirect_to new_user_path
    end
end

这是我create在用户控制器中的方法,并且正在使用invitation gem文件发送邀请。如果我使用相同的邮件 ID 创建另一个用户,那么现有用户的每个数据都会更新。我怎样才能防止这个更新用户。

4

1 回答 1

1

validation您应该在user模型中添加唯一的电子邮件。

validates :email, uniqueness: true

另外,像这样重构你的代码:

def create
    user = User.new(user_params)
    if user.save
      flash[:notice] = '#{params[:user][:role]} created successfully'
      redirect_to users_path(role: params[:role])
    else
      flash[:errors] = "#{user.errors.full_messages.join(', ')}"
      redirect_to new_user_path
    end
end
于 2016-12-05T04:57:38.450 回答