【发布时间】:2015-08-18 17:27:40
【问题描述】:
我正在尝试使用valid? 方法在我的模型中进行自定义验证。我需要运行这个模型的所有验证,除了密码。
类似这样的:
@resource = SalesPartner.new(permitted_params.merge(parent: current_sales_partner))
respond_to do |format|
if @resource.valid?(except: :password)
@resource.generate_authentication_token
SalesPartnerMailer.mail_new_sales_partner(@resource.email,
{ auth_token: @resource.authentication_token, id: @resource.id, level: @resource.level }
).deliver
flash[:success] = "#{@resource.level} criado com sucesso."
format.html { render "#{@path}/index" }
else
logger.log_and_alert_save_error(@resource, flash, "Ocorreu um erro ao salvar.")
format.html { render "#{@path}/new" }
end
end
这可能吗?
谢谢大家!
【问题讨论】:
-
您尝试运行的验证是什么。
-
valid?将运行您在相应模型(resource类)中注册的验证。 -
更新了代码。我需要跳过密码验证,因此在这种情况下将创建没有密码的 SalesPartner 对象。注意:SalesPartner 使用的是具有密码验证功能的设计。
-
你没有明白我的意思。您正在验证的内容是什么?
-
我正在验证姓名、电子邮件的存在,并对 coupon_discount 属性进行自定义验证。