首页 > 解决方案 > 如何仅在选择选项时验证字段 - RAILS 5

问题描述

有人可以告诉我只有在选择一个选项时我如何验证一个字段

会不会写成下面这样: validates_presence_of :category_service_id, presence: true, if: :category_segment_id?, message: "can't be blank"

有人可以给我建议吗 在此处输入图像描述

标签: ruby-on-rails

解决方案


你很亲近。您需要做的是进行条件验证(更多关于它的官方指南)。

您需要执行以下操作:

validates_presence_of :category_service_id, if: :service_provider?

# Marking the validation check method as private is optional, but recommended
private

def service_provider?
  <Your code to check if segment is service_provider comes here>
end

message不需要,因为默认错误消息是can't be blank.

我强烈建议阅读上面链接中提到的文档,以便更好地理解验证。

注意:service_provider?如果您使用枚举来决定,则不需要方法service_providerparent因为枚举默认定义option?方法。


推荐阅读