Ruby on Rails中的初学者
我在PostgreSql数据库中有表。我能够将模式从现有数据库转储到Ruby模式并进行迁移(这为我节省了很多时间)
现在我想知道是否有办法从迁移验证实施模型验证。我在表的字段上实现了数据验证。我也希望对模型实现相同的验证。有没有办法用最少的代码来完成它,还是我必须在每个模型中手动创建验证?
例如:
create_table "corporates", id: :serial, force: :cascade do |t|
t.string "corporate_no", limit: 13, null: false
t.string "corporate_name", null: false
t.boolean "active", default: true
t.datetime "created_at"
t.datetime "updated_at"
t.index ["corporate_no"], name: "corporates_corporate_no_key", unique: true
end
现在我想在我的模型中实现这个验证
class Corporate < ApplicationRecord
validates :corporate_no, presence: true, limit: 13
validates :corporate_name, presence: true
validates :active, default: true
end
P.S。那些模型验证可能是错误的。我说我是初学者吗?
谢谢!
答案 0 :(得分:1)
Rails中不太可能有开箱即用的东西。
但是我发现了一个宝石schema_validations可能会发生,你正在寻找的东西。
唯一的区别是这个宝石遵循DRY方法,并且不会在模型中生成验证。例如,您有users
表:
create_table :users do |t|
t.string :email, null: false, limit: 30
t.boolean :confirmed, null: false
end
这个宝石不会像你期望的那样产生验证:
class User < ActiveRecord::Base
validates :email, presence: true, length: { maximum: 30 }
validates :confirmed, presence: true, inclusion: { in: [true, false] }
end
您仍然会有干净的User
模型,但字段已经过验证:
class User < ActiveRecord::Base
end
如果您不需要在每个型号上进行验证,则可对其进行配置。