早上好,
试图找到最好的方法来避免我现在所处的情况。我有一个 A 类,它具有以下属性 a、b、c、d
当在 A 上调用 create 时,我首先检查是否存在具有以下参数 a、b、c 的 A 实例。
现在我用来检查数据库并在必要时创建的行是
@foo = A.where(:a => params[:A][:a], :b => params[:A][:b],:c => params[:A][:c]).first_or_create!
A 类对 a、b、c 具有以下验证
a's length > 3 & < 15
b must be true (checkbox must be checked)
c's length >50 & < 500
当用户传入空白表单时,我将收到上一行生成的错误。我知道这是由于控制器试图创建一个不符合验证的对象 A 引起的。
begin rescue end
使用pre-first_or_create 或错误检查是最好的方法!?