对于reason,我使用了mysql cmd
insert into table_name (....)
update custom_reports ...
因此我错过了Model validations
validates_uniqueness_of :name
validates_presence_of :name, :description
如何以rails方式验证?或者,使用mysql方式验证(也需要这种方式的帮助)?
答案 0 :(得分:1)
如果只执行自定义SQL命令,则Rails验证和其他ActiveRecord
和ActiveModel
魔法不起作用。然后,您的模型类都不会被实例化。
答案 1 :(得分:0)
对于Mysql(或任何类似DB的sql),您可以将列属性修改为:
我知道使用OCI8执行上述操作并且oracle会导致异常,我猜测应该与ActiveRecord和Mysql相同,所以你应该正确处理你的异常
但正如@Marek所说,你应该依靠Active记录并做一些像
这样的事情
Model.create()
OR
model_instance.save()
答案 2 :(得分:0)
如果要查找(并且可能处理)数据库中无效的条目,请在rails控制台中尝试以下操作:
ModelName.find_each do |item|
unless item.valid?
puts "Item ##{item.id} is invalid"
# code to fix the problem...
end
end
valid?
再次运行Validations
,但不会更改数据。