Rails,DRY默认验证字符串长度?

时间:2013-12-02 22:28:59

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

所以我遇到一个问题,长度错误是rails异常,因为模型没有长度验证。

我知道我可以使用

在我的字符串上放一个长度验证器
validates :blah, length: { maximum: 255 }

但是我的大部分字符串都使用默认大小255,所以我必须在很多地方重复这个验证。

是否有一种干扰方法可以将默认验证器放在所有字符串上以验证默认数据库长度为255?

3 个答案:

答案 0 :(得分:6)

gem schema_validations https://github.com/SchemaPlus/schema_validations)可以满足您的需求。

  

根据数据库架构自动创建验证。

     

它检查数据库并根据模式自动创建验证。安装完成后,您的模型尽可能简单。

class User < ActiveRecord::Base
end
  

验证是存在的,但它们是由架构下的schema_validations创建的。

答案 1 :(得分:2)

这可能不是您正在寻找的答案,但如果您向验证器添加多个字段,那么您实际上并没有重复验证器,对我来说似乎相当干。

validates :foo, :bar, :baz, length: { maximum: 255 }

答案 2 :(得分:0)

class ModelName < ActiveRecord::Base
  validates :name, length: { maximum: 255 }
end

然后输入

来使用它
ModelName.validators