gpt4 book ai didi

ruby-on-rails - rails 中的订阅模型

转载 作者:行者123 更新时间:2023-12-04 06:32:07 25 4
gpt4 key购买 nike

所以我有一个稍微有趣的模型:
我想记录订阅特定线程的用户列表。

目前我有 :thread has_many :subscribers

在哪里

订阅者将 user_id 和 thread_id 作为参数。如果找到 user_id 和 thread_id 的组合,则订阅用户,否则不订阅。

如果我想订阅一个用户,我需要把这个组合插入到数据库中。

如果我想“取消订阅”一个用户,我需要从数据库中删除这个组合。

我需要为此使用标准的 ActiveRecord 设置,还是应该更彻底地更改它?如果我在没有框架的情况下执行此操作,我将拥有 task_id 和 user_id 的联合 key ,但我不知道这在 rails 中是否可行。

关于如何进行的想法?

最佳答案

您可以使用“has_many :through”ActiveRecord 关联。您可以在 Rails Guides for Active Record 上找到更多信息.

基本上,您在 Thread 模型中执行以下操作:

has_many :subscriptions
has_many :subcribers, :through => :subscriptions

然后做:
has_many :subscriptions
has_many :subscribed_threads, :through => :subscriptions

在您的订阅者/用户模型中。

在您的订阅模型中,您将拥有以下内容:
has_many :threads
has_many :subscribers

您需要创建 thread_subscribers 表和模型,以正确连接所有内容。但最后你可以做一个 myThread.thread_subscribers并获取某个线程的订阅者列表或 user.subscribed_threads获取用户的订阅。

关于ruby-on-rails - rails 中的订阅模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7638564/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com