2011-12-11 53 views
1

我正在開發我的第一個簡單的Rails應用程序,用戶在該應用程序中提交體育「推文」(例如「網球,壁球」),服務器將其與合作伙伴進行匹配。服務器會根據類似的推文向您返回SportMatches的列表,並且您有不同的選項(例如電子郵件,短信)來回復某人的推文,並接受他/她的合作伙伴。最初,建模過程很簡單:用戶has_many SportTweets和SportTweet屬於用戶。通知只是用戶的一部分,或者他們可能已被建模爲與用戶的1對1關係。如何在現有的Rails模式中爲匿名用戶建模?

我的業務需求有所變化,因爲現在我有匿名用戶也可以發佈SportTweets。由於他們沒有帳戶/資料,他們還必須提交通知(例如電子郵件,短信)。我不知道如何建模Rails方式。 SportTweets現在是匿名的,或者是通過身份驗證的用戶發佈的(AUP)。所以,現在,我的SportTweets表將有以下幾列:

  • 類型:可以是 「匿名」 或 「AUP」
  • USER_ID:僅AUP
  • notifications_id:只爲匿名
  • 體育:所有
  • POST_DATE:所有
  • post_location:所有

會有一個通知表。通知記錄將屬於用戶或SportsTweet。我想我會用多態關聯來建模。

這只是看起來不像Rails的方式。有沒有人遇到類似的問題?你是如何解決它的?

回答

0

做了一點搜索,答案是性病。請參閱Rails 3 Way - 第9章。

+0

有助於使該解答更有有用的請解釋什麼是有用的Rails 3 Way - 第9章。五年後,當你的答案繼續存在並且Rails 3 Way已經絕版,並且很難找到你的答案仍然有用。 – ahsteele

0

如果可以,請使用Devise。我認爲這link可能會幫助你。

在某些應用中,這是非常有用的一個guest用戶對象甚至是(人類)之前通過周圍用戶註冊或登錄。通常情況下,你想,只要在​​瀏覽器會話仍然存在這個guest用戶堅持。

我們的方法是在數據庫中創建一個guest用戶對象,並將其id存儲在session [:guest_user_id]中。當(如果)用戶註冊或登錄時,我們刪除來賓用戶並清除會話變量。如果用戶沒有登錄和CURRENT_USER如果用戶登錄的輔助函數,current_or_guest_user,返回guest_user。

其次是代碼,您可能會發現在page

相關問題