所以我有一个问题,长度错误是轨道异常,因为模型没有长度验证。
我知道我可以使用
validates :blah, length: { maximum: 255 }
但是,我的大多数字符串都使用默认大小255,因此我必须在很多地方重复此验证。
是否有一种简单的方法将默认验证器放在所有字符串上,以验证默认数据库长度255?
宝石schema_validations(https://github.com/SchemaPlus/schema_validations)做你想要的。
根据数据库架构自动创建验证。
它检查数据库并根据模式自动创建验证。安装后,您的模型尽可能简单。
class User < ActiveRecord::Base
end
验证是存在的,但它们是由幕后的schema_validations创建的。
这可能不是你正在寻找的答案,但是如果你向验证器添加多个字段,那么你就不会真正重复验证器,对我来说似乎相当干燥。
validates :foo, :bar, :baz, length: { maximum: 255 }
class ModelName < ActiveRecord::Base
validates :name, length: { maximum: 255 }
end
然后通过打字来使用它
ModelName.validators