Rails:ActiveRecord StatementInvalid Mysql2 Error列超出范围值

时间:2017-07-28 15:17:51

标签: ruby-on-rails ruby-on-rails-4

我需要在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

0 个答案:

没有答案