我遇到的问题是,当电子邮件是重复的时候,它应该通过javascript自己定制弹出窗口。我使用@emailexists来做到这一点,但我在其他问题上遇到的问题我不知道如何指出它实际上是重复的问题,这就是使用elsif而不是使用elsif的原因其他。任何帮助将不胜感激!
def create
@ambassador = Ambassador.new(ambassador_params)
if @ambassador.save
puts "========================"
puts "Successful Save"
puts "========================"
# redirect_to root_url, notice: 'Thank you for signing up!'
elsif @ambassador.errors
@emailexists = @ambassador.errors.full_messages
else
@errors = @ambassador.errors.full_messages
end
end
答案 0 :(得分:1)
在这里使用相同的电子邮件显式检查现有帐户可能更为直接,而不是允许错误并尝试从错误中检测特定的错误情况。
def create
@ambassador = Ambassador.find_by_email(ambassador_params[:email].downcase)
if @ambassador
@emailexists = true
else
@ambassador = Ambassador.new(ambassador_params)
if @ambassador.save
puts "========================"
puts "Successful Save"
puts "========================"
# redirect_to root_url, notice: 'Thank you for signing up!'
else
@errors = @ambassador.errors.full_messages
end
end
end
请注意,您还需要确保大使模型在保存之前降低电子邮件地址,以简化后续存在检查。
class Ambassador < ActiveRecord::Base
attr_accessible :email
# Not all database adapters use case-sensitive indices,
# so this helps ensure uniqueness no matter what.
before_save { email.downcase! }
end