我需要在rails 4中使用一种方法,通过它我可以根据不同类型的列验证多个模型中的数据。我有一个应用程序有几个模型,每个模型有各种列。我需要根据列的类型验证每个属性值,以便它不会生成
ActiveRecord::StatementInvalid Mysql2::Error: Out of range value for column
我的应用程序中的mysql中有STRICT_ALL_TABLES
模式。以前STRICT_ALL_TABLES
设置为false
,现在我必须将其设置为true
。我需要用不同的精度和比例(基于不同的模型)验证十进制,字符串表示字符串范围内的值(255个字符),依此类推。
以前我试过用控制器中的异常处理来处理它,但这并没有给模型验证失败。
rescue_from ActiveRecord::StatementInvalid, with: :statement_invalid
def statement_invalid(exception)
respond_to do |format|
format.js { render json: { message: 'Not Found' }, status: 404 }
format.json { render json: { message: 'Not Found' }, status: 404 }
format.html { render 'shared/page_not_found', status: 404 }
end
end