【发布时间】:2017-04-03 19:37:09
【问题描述】:
我正在开发我的第一个简单的 Rails 应用程序,用户可以在其中提交运动“推文”(例如“网球、壁球”),然后服务器将它们与合作伙伴进行匹配。服务器将根据类似的推文向您返回一个 SportMatches 列表,您有不同的选择(例如电子邮件、短信)来回复某人的推文并接受他/她作为合作伙伴。最初,建模是直截了当的:用户 has_many SportTweets 和 SportTweet 属于用户。通知只是用户的一部分,或者它们可以被建模为与用户的一对一关系。
我的业务需求发生了一些变化,因为现在我有匿名用户,他们也可以发布 SportTweets。因为他们没有账户/个人资料,他们还必须通过推文提交通知(例如电子邮件、短信)。我不知道如何以 Rails 方式建模。 SportTweets 现在要么是匿名的,要么是经过身份验证的用户发布 (AUP)。所以,现在,我的 SportTweets 表将包含以下列:
- 类型:“匿名”或“AUP”
- user_id:仅适用于 AUP
- notifications_id:仅用于匿名
- 运动:适合所有人
- post_date:适用于所有人
- post_location:所有人
- 等
会有一个通知表。通知记录将属于用户或 SportsTweet。我想我会用多态关联来建模。
这看起来不像 Rails 的方式。有没有人遇到过类似的问题?你是怎么解决的?
【问题讨论】:
标签: ruby-on-rails activerecord