我正在尝试在电子商务网站的结帐页面中实施可选的礼品消息表单。我们的表格为您提供标准的运输信息,但我希望如此,如果客户开始填写礼品消息的字段,则礼品消息所需的所有字段都需要验证。我有4个字段
:gift_message_to - 输入有关礼物的用户的信息
:gift_message_from - 赠送礼物的人的姓名
:gift_message_message - 他们的消息
:gift_recipient_email - 将向收件人发送一封电子邮件,通知他们他们将收到礼物。这将使用正则表达式和html5来确保它是格式正确的电子邮件地址。
我在考虑创建自己的验证方法
def order_has_gift_message_field
order_has_gift_message_field = false
if self.gift_message_message.to_s.size > 0 || self.gift_message_to.to_s.size > 0 || self.gift_message_from.to_s.size > 0 || self.gift_recipient_email.to_s.size
order_has_gift_message_field = true
end
return order_has_gift_message_field
end
并验证它
validate :order_has_gift_message_field
因此,如果用户开始输入任何这些字段,则还需要填写其他字段。但如果他们没有输入任何信息,则不会出现验证。有没有人做过类似的事情?任何建议将不胜感激。
答案 0 :(得分:0)
查看Rails指南' custom validations。
有一个例子可以像你建议的那样制作自定义验证方法。
class Invoice < ActiveRecord::Base
validate :active_customer, on: :create
def active_customer
errors.add(:customer_id, "is not active") unless customer.active?
end
end