Rails:如何写出更好的关联条件?

时间:2011-07-21 10:21:16

标签: ruby-on-rails associations

在Rails 2.3.8中我有2个模型新闻和用户。

在我的应用中,我希望能够向每个注册用户显示他尚未阅读的新闻。在主页中,每条新闻都应该在一个框中显示,用户应该能够点击“X”并永远隐藏该新闻(仅适用于他的个人资料)。

实现此目的的一种方法是拥有User_news模型,并且每次创建一条新闻时,在User_news模型中为每个用户生成一条记录,并为每个用户更新链接记录,并将“读取”字段设置为真正。然后在User模型中创建一个关联,如:

class User < ActiveRecord::Base
has_many :unread_news, :through => :user_news, :source => :news, :conditions => 'read IS NOT TRUE'

这种方法存在的问题是,如果我的应用中有数千名用户,每次发布一条新闻时,我都需要在user_news表中创建数千条记录。

我的问题是:是否可以在用户和新闻模型之间编写一个关联,告诉Rails:

“每个用户的未读新闻是除了User_news表格中出现的新闻之外的所有现有新闻”吗?

无论如何,你会如何实现我的目标?

谢谢, 奥古斯托

1 个答案:

答案 0 :(得分:0)

似乎你在谈论NoSQL解决方案。如果您确定,请尝试MongoDB