0

我想在 Rails 中用文本制作一个简单的用户通知。我显然希望有多个通知,所以我的问题是我是否必须创建一个全新的迁移并创建与我的用户模型的关联,或者是否有某种方法可以在我的用户表中扩展“通知”文本属性?我想你可以在通知之间插入换行符,但这不是我想要的,因为这听起来会变得太乱。谢谢!

4

3 回答 3

2

如果您只想存储通知,您可以告诉 Rails 将其视为一个数组(通知的列类型应该是text):

class User < ActiveRecord::Base
  serialize :notifications, Array
end

如果您想存储任何其他通知详细信息(如作者或时间戳等),您可能应该使用单独的模型。

Rails 文档:Active Record,搜索“在文本列中保存数组、哈希和其他不可映射的对象”。

于 2012-08-09T15:37:48.973 回答
1

如果您想保留通知的历史记录供用户稍后查看,那么您可能希望将其存储在数据库中。意思是,你会想在数据库中创建一个新表。您应该通过迁移脚本执行此操作。这个新模型应该与 User 模型相关联,这样你就可以做一些事情,比如user.notifications检索他们的所有通知。

此外,如果您timestamps在新Notifications模型中使用,您可以稍后进行一些有趣的分析。

于 2012-08-09T15:14:48.367 回答
0

您可以为此目的使用 rails 多态关联,使用此机制您可以将通知模型与其他模型相关联,而无需修改目标表。

这个链接给出了一个更好的例子 http://railscasts.com/episodes/154-polymorphic-association

于 2012-08-09T15:27:46.750 回答