我有一個「公司」資源。當用戶註冊一個免費帳戶時,他們只需輸入一個電子郵件地址。當他們想升級他們的賬戶時,我需要從他們那裏獲得更多的細節,比如他們的地址。如何最好地模擬這個?如何最好地模擬一個公司,它的地址在Ruby on Rails
- 將地址詳細信息存儲在公司表中?
- 有一個單獨的「地址」表與一對一的映射與公司,升級 將在地址上的新動作?
- 在升級帳戶的公司資源上創建一個操作,並獲取地址信息?
- 創建一個名爲「升級」的新資源,將附加地址信息 添加到公司表中?
感謝
我有一個「公司」資源。當用戶註冊一個免費帳戶時,他們只需輸入一個電子郵件地址。當他們想升級他們的賬戶時,我需要從他們那裏獲得更多的細節,比如他們的地址。如何最好地模擬這個?如何最好地模擬一個公司,它的地址在Ruby on Rails
感謝
「溢價」 應該從 「是/代表公司」 隔開。我會用一個單獨的Company
模型去,有足夠的領域供地址等
一個Company
然後將屬於:user
和User
將有一個:company
。
如果您需要提示哪些字段用於地址,請參閱adr
微格式(http://microformats.org/wiki/adr)。
我可以看到你有一個單獨的地址模型或只是存儲在公司。就我個人而言,我可能會選擇有一個單獨的模型,因爲在任何給定的系統中,很可能您將擁有與多個模型關聯的地址。另一個好處是它有助於從公司分離與地址有關的責任。
我會設置您的驗證這樣的:
Class Company
has_one :address
validates_presence_of :address, :if => :upgraded?
validates_presence_of :email
...
private
def upgraded?
<true if user has upgraded, else false>
end
end
你會是什麼型號的升級行動?它可以安靜地完成嗎? – pingu
我會對公司進行升級操作。您可以通過一個標識公司是否升級的字段(即布爾名稱「升級」或稱爲「狀態」的字符串)來安全地執行此操作。用戶與網站或網頁API或其他內容交互的界面是什麼? – f1sherman