2013-02-06 70 views
1

簡單的問題。我正在學習RoR。我發誓我在這裏和谷歌搜索這個主題。我在哪裏將數據庫約束放在rails中?

我需要在我的應用程序很多表。

我在讀關於數據庫約束的好處。我在每個模型中使用驗證,例如:

class Example < ActiveRecord::Base 

    belongs_to :other 
    has_one :another... 

    attr_accessible :username, :email, :password 

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

我想知道數據庫約束,我怎麼能在數據庫中得到相同的驗證?我應該將這個約束(如:null => false)放在schema.rb文件中嗎?

回答

1

是的,絕對把在遷移:

:null => false

要需要一個非空場。儘管仍然可以提供空字符串,並且它會通過非NULL測試。您可以通過添加長度驗證來覆蓋此:

validates_length_of :username, :minimum => 1, :maximum => 255

+0

謝謝!還有1個問題,我應該編輯遷移文件或schema.rb? – josias

+0

爲了進一步澄清這個答案,把它放在你的MIGRATION文件中,而不是在SCHEMA.RB文件中,因爲最後一個是自動生成的,它將被覆蓋。 –

+0

總是編寫遷移,因爲Rails根據您運行的遷移更新schema.rb –

相關問題