【发布时间】:2020-01-17 17:45:29
【问题描述】:
我想,比较这两个参数是否存在于数据库中相同的注册ID。
例子:
Data.all 返回这个。
phone_number | adress
12345678 | route 66
检查以下是否为所有参数返回 true。
我的如果有活动记录:
if Data.exists?(phone_number: "#{params["phone_number"]}", adress: "#{params["adress"]}")
puts "true, it's registered"
else
puts "false not, registered."
Data.create!(phone_number: "#{params["phone_number"]}", adress: "#{params["adress"]}")
end
如果以上为两个参数中的新选择返回 false
示例:
Data.all 返回这个。
phone_number | adress
95654152 | route 67
使用参数创建一个新的寄存器,而不是重复。
你能帮帮我吗?正如我写的那样,它只验证 1 个条件,而不是 2 个参数。
【问题讨论】:
-
第一个
Data.all和第二个显示的电话号码和地址不同 -
当然,如果条件检查的参数与表数据不同,则插入其他数据,只比较两个参数而不插入。
-
你能展示一个可重现的例子来说明它是如何不工作的吗?您的代码没有明显的问题,因此请务必检查您作为参数传递给
.exists?的确切值,并将它们与数据库值进行比较。 -
当我执行原始代码时,它只比较 1 个值与获得 2 个值的结果最终创建一条新记录,因为在比较第一个值是否存在而第二个值不存在时创建,我正在尝试仅在 2 个值不存在时验证他必须创建新记录。
标签: ruby-on-rails ruby postgresql activerecord