我有一個User類和Contact where Contact是User的子類。這兩個類都存儲在用戶表中。Rails - Skip rails驗證的子類
我的聯繫人可能有也可能沒有電子郵件地址,而我的用戶需要電子郵件地址(我的用戶模型定義中有validates_presence_of :email
)。
我的推理是,聯繫人是由用戶輸入的,並且可能以後會在用戶聲明其個人資料時成爲用戶。
- 首先,可以按我的方式定義我的 用戶和聯繫人嗎?
- 二,如何在我的聯繫人模式中跳過
validate_presence_of email
驗證?
(我在軌2.3.8)
謝謝!
UPDATE:
看來單表繼承被 設計做的正是我需要
跳過驗證了 電子郵件的存在爲我聯繫的正確途徑 表如下:
validates_presence_of :email, :unless => Proc.new {|user| user.type == "Contact"}
不宜用戶是子類聯繫人?在我看來,用戶*是註冊的聯繫人。但聯繫人不一定是用戶。這也可以解決你的驗證問題,因爲驗證將在用戶模型中進行,否定了對:except子句的需要。 – Raphael 2012-01-24 23:34:56