我有一个API。我想检查请求正文中的所有空白值并拒绝它们。另外,我有几个属性可以使用true / false (布尔值)作为值。
请求正文示例
{
"data": {
"id": 123,
"type": "abc",
"attributes": {
"is_abc": false,
"name": "gtd",
"is_dgc": true
}
}
}
我正在验证请求主体是否有空值,如果有则抛出异常。
def validate_blank_values(params)
blank_keys = params.map { |key, value| key if value.blank? }.compact
raise exception
end
value.blank?当请求的值为false 时,甚至拒绝布尔属性。已尝试
value.present?
也是以同样的方式工作的。.nil的问题是什么?空字符串是否也返回false。
''.nil? => false
.empty的问题是什么?是
false.empty? => (undefined method `empty?' for false:FalseClass)
我想要拒绝这些值,当它们是
空白
空字符串
零
在以下情况下不要拒绝
真值
值为false
给我一个解决方案
发布于 2021-02-28 06:12:59
你需要在这里使用多个条件,否则它不会工作。
尝试以下条件
value.present? || value.class == FalseClass || value.class == TrueClass
附言:
的嵌套值。
https://stackoverflow.com/questions/66399593
复制相似问题