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来创建另一个用户,则更新了对现有用户的每个数据。我如何阻止此更新用户。
您应该在user
模型中添加唯一电子邮件validation
。
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