Ruby on rails 我应该将数据库约束放在rails中的什么位置?

Ruby on rails 我应该将数据库约束放在rails中的什么位置?,ruby-on-rails,database,validation,constraints,Ruby On Rails,Database,Validation,Constraints,简单的问题。我在学习RoR。我发誓我在这里和谷歌搜索过这个主题 我的应用程序中需要很多表 我正在阅读有关数据库约束的好处的文章。我在每个模型中使用验证,例如: class Example < ActiveRecord::Base belongs_to :other has_one :another... attr_accessible :username, :email, :password validates :username, e:mail, :password

简单的问题。我在学习RoR。我发誓我在这里和谷歌搜索过这个主题

我的应用程序中需要很多表

我正在阅读有关数据库约束的好处的文章。我在每个模型中使用验证,例如:

class Example < ActiveRecord::Base

  belongs_to :other
  has_one :another...

  attr_accessible :username, :email, :password

  validates :username, e:mail, :password, presence: true
  validades .....
end
类示例

我想知道关于数据库约束,如何在数据库中获得相同的验证?我是否应该在schema.rb文件中放置此约束(如
:null=>false
)?

是的,绝对要在迁移中放置此约束:

:null=>false

需要一个非空字段。尽管仍然可以提供空字符串,并且它通过了非空测试。您可以通过添加长度验证来解决此问题:


验证:username,:minimum=>1,:maximum=>255的长度

为了进一步澄清这个答案,请将其放在迁移文件中,而不是SCHEMA.RB文件中,因为最后一个文件是自动生成的,它将被覆盖。请始终编写迁移,因为Rails会根据您运行的迁移更新SCHEMA.RB