【问题标题】:Having trouble figuring out where to start with allowing users to subscribe to forums in my rails app在我的 rails 应用程序中无法确定从哪里开始允许用户订阅论坛
【发布时间】:2013-12-13 20:47:01
【问题描述】:

我正在尝试使用户可以订阅论坛,并且当论坛更新时,用户会收到警报。我一生都无法弄清楚如何设置数据库来做到这一点。我很确定您应该使用 user_id 和 forum_id 设置关联表,但我不确定。如果有人可以给我一些关于如何开始或计划的指导,甚至可以为我指出一些很棒的资源。

提前致谢。

【问题讨论】:

    标签: ruby-on-rails database-design


    【解决方案1】:

    创建一个名为 user_forum_subscriptions 的连接表

    class UserForumSubscription < ActiveRecord::Base
      self.table_name = "user_forum_subscriptions"
      belongs_to :user
      belongs_to :forum
    end
    
    class User < ActiveRecord::Base
      has_many :user_forum_subscriptions
    end
    
    class Forum < ActiveRecord::Base
      has_many :user_forum_subscriptions
      has_many :users, :through => :user_forum_subscriptions
    end
    

    现在,forum.users 是您在论坛发生变化时需要提醒的人

    【讨论】:

    • 控制器的外观如何,或者订阅是通过用户控制器进行的?
    【解决方案2】:

    我想您应该从生成一个名为 Subscription 的新模型开始。将订阅视为资源。用户应该有_many 可以添加/删除/编辑的订阅。

    我可能会从 Michael Hartl 的教程第 11 章开始,其中他展示了如何为他的类似 twitter 的应用程序建立“跟随”关系。在许多方面,它与您要完成的任务相似。 Here's the link,阅读关系模型,希望它是您正在寻找的。​​p>

    【讨论】:

      【解决方案3】:

      我可能会做一些事情,比如用user_idforum_iduser_last_notified_date 列构建一个表。

      然后每隔一段时间(每小时,也许每天)我会启动一个进程,在论坛中查找最新更新,查找订阅该论坛的用户,然后检查user_last_notified_date 列。如果该列为空白或在最近的论坛更新之前,则向这些用户发送通知。

      如果需要更即时的通知,那么每当更新论坛时,基本上都运行相同的过程,可能会忽略进行更新的用户(因此,每当您进行论坛更新时,您都不会收到通知)。

      【讨论】:

      • 快速提问,我怎样才能让它在一定时间后发出通知?我正在查找它,但没有成功。
      • 我只是指等式的数据库方面。对于 ROR,我不确定如何设置计划任务,但必须有一些机制。可能有一些很好的信息here
      猜你喜欢
      • 2010-11-30
      • 1970-01-01
      • 2013-06-19
      • 2011-02-26
      • 2018-03-05
      • 1970-01-01
      • 2015-07-28
      • 1970-01-01
      • 2012-11-11
      相关资源
      最近更新 更多