Ruby 在 Rails |如何在 rails 表单上应用验证
Ruby on Rails | How to apply validation on rails form
我正在为我的应用程序添加促销代码选项。我想在表单上应用验证,将用户输入的促销代码与管理仪表板中已有的促销代码相匹配(Activeadmin 用于管理仪表板)。
我已经尝试了几个选项,但没有任何效果。我试过的例子 -
def validate_promo_code
if promo_code.present? and (!promo_code.match(EngineName::PromoCode.promo_code))
errors.add :promo_code, "must be a valid promo code"
end
end
def validate_promo_code
if promo_code.present? and (promo_code != EngineName::PromoCode.where(promo_code: promo_code))
errors.add :promo_code, "must be valid promo code"
return;
end
end
有人知道如何实现吗?请帮忙!
您必须使用 validate
dsl 语句让您的 activerecord 模型知道验证。这个有用吗?
validate :ensure_valid_promo_code
def ensure_valid_promo_code
if promo_code.present? && (!promo_code.match(EngineName::PromoCode.promo_code))
errors.add :promo_code, "must be a valid promo code"
end
end
万一有人还在寻找解决方案,试试这个 -
def validate_promo_code
existing_code = EngineName::PromoCode.where(promo_code: promo_code)
if promo_code.present? and !(existing_code.present?)
errors.add :promo_code, "must be valid promo code"
end
end
这个解决方案适合我。
我正在为我的应用程序添加促销代码选项。我想在表单上应用验证,将用户输入的促销代码与管理仪表板中已有的促销代码相匹配(Activeadmin 用于管理仪表板)。
我已经尝试了几个选项,但没有任何效果。我试过的例子 -
def validate_promo_code
if promo_code.present? and (!promo_code.match(EngineName::PromoCode.promo_code))
errors.add :promo_code, "must be a valid promo code"
end
end
def validate_promo_code
if promo_code.present? and (promo_code != EngineName::PromoCode.where(promo_code: promo_code))
errors.add :promo_code, "must be valid promo code"
return;
end
end
有人知道如何实现吗?请帮忙!
您必须使用 validate
dsl 语句让您的 activerecord 模型知道验证。这个有用吗?
validate :ensure_valid_promo_code
def ensure_valid_promo_code
if promo_code.present? && (!promo_code.match(EngineName::PromoCode.promo_code))
errors.add :promo_code, "must be a valid promo code"
end
end
万一有人还在寻找解决方案,试试这个 -
def validate_promo_code
existing_code = EngineName::PromoCode.where(promo_code: promo_code)
if promo_code.present? and !(existing_code.present?)
errors.add :promo_code, "must be valid promo code"
end
end
这个解决方案适合我。