0

由于这个原因,我使用了 mysql cmd

insert into table_name (....)
update custom_reports ...

,因此我错过了Model validations

validates_uniqueness_of :name
validates_presence_of :name, :description

现在如何以 Rails 方式验证?或者,使用mysql的方式来验证(也需要这种方式的帮助)?

4

3 回答 3

1

如果您只执行自定义 SQL 命令, Rails 验证和其他ActiveRecord魔法ActiveModel将不起作用。你的模型类甚至都没有被实例化。

于 2013-11-05T14:03:57.277 回答
0

对于 Mysql(或任何类似 DB 的 sql),您可以将 column 属性修改为:

我知道使用 OCI8 和 oracle 执行上述操作会导致异常,我猜 ActiveRecord 和 Mysql 应该是相同的,所以你应该正确处理你的异常

但正如@Marek 所说,您应该依靠 Active 记录并做类似的事情

Model.create()
OR model_instance.save()

于 2013-11-06T17:14:47.903 回答
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,但不更改数据。

于 2013-11-12T10:13:41.953 回答