Ruby on rails 我应该将数据库约束放在rails中的什么位置?
简单的问题。我在学习RoR。我发誓我在这里和谷歌搜索过这个主题 我的应用程序中需要很多表 我正在阅读有关数据库约束的好处的文章。我在每个模型中使用验证,例如: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
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