Ruby on Rails 的最新活动

2023-12-23

实现 StackOverflow 风格的“近期活动”页面的最佳方式是什么?

我有一个包含用户照片的图库,我希望他们在何时收到通知other用户评论或投票他们的照片。

我应该创建一个包含最近活动的新表(每当用户发表评论或投票时更新),还是应该简单地使用 MySQL 查询?


简短的回答是:这取决于。如果您只需要最近的活动,而不需要跟踪活动或完整的“活动源”功能,那么 SQL 就是您的最佳选择。但如果您认为需要执行完整的活动提要,您可以为其创建一个模型。

我们最近对我们的项目进行了一次活动。这是我们的建模方式

Class Activity
   belongs_to :user_activities # all the people that cares about the activity
   belongs_to :actor, class_name='user' # the actor that cause the activity

   belongs_to :target, :polymorphic => true # the activity target(e.g. if you vote an answer, the target can be the answer )
   belongs_to :subtarget, :polymorphic => true # the  we added this later since we feel the need for a secondary target, e.g if you rate an answer, target is your answer, secondary target is your rating. 

   def self.add(actor, activity_type, target, subtarget = nil)
     activity = Activity.new(:actor => actor, :activity_type => activity_type, :target => target, :subtarget => subtarget)
     activity.save!
     activity
   end 
end

在answer_controller中我们做

Class AnswersController
    def create
        ...
        Activity.add(current_user, ActivityType::QUESTION_ANSWERED, @answer)
        ...
    end
end

为了从用户那里获取最近的活动列表,我们这样做

@activities = @user.activities
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ruby on Rails 的最新活动 的相关文章

  • 关于空 own_to 关联的最佳实践

    想象一下以下情况 我有一个dog模型和一个house模型 一只狗可以属于一个房子 一个房子可以有很多只狗 所以 Class Dog lt ActiveRecord Base belongs to house end Class House
  • Rails 复选框不起作用 - 提交表单时没有错误

    我在 Rails 中的复选框遇到问题 我有两个模型 User 和authorized users 具有以下关联 class AuthorizedUser lt ActiveRecord Base has one user as gt use
  • Rspec:测试救援

    尝试测试我的函数是否能够正确地从异常中解救 更改参数 文件名 然后重试一次 我可以让函数接收第一次尝试 但无法让它接收第二次尝试 控制器 begin video get video video id rescue matches video
  • Delayed_job不会运行用户定义的方法

    我一直在尝试让 DelayedJob 在后台运行一些用户定义的方法 对于这个测试用例 我在助手中定义了以下方法 def test case u User new u first name JimBob u last name joe u e
  • :autosave 忽略了 has_many 关系——我错过了什么?

    我有两门课 class Collection lt ActiveRecord Base has many items autosave true end class Item lt ActiveRecord Base belongs to
  • 使用 Ruby Curb 传递 GET 参数

    我正在尝试使用 Curb curb rubyforge org 调用需要在 get 请求中提供参数的 RESTful API 我想获取一个像这样的URLhttp foo com bar xml bla blablabla 我希望能够做类似的
  • Rspec 通过 mTurk 测试实时结果

    我正在通过 Rspec 测试代码在 mTurk 上创建点击 但同时我需要测试必须从 mTurk 发回的结果 为了节省每次测试的复杂性 我使用 VCR 将 HTTP 请求记录在盒式磁带中 我该如何实施这个测试 好吧 我为此做了一些修改 我使用
  • 需要帮助设置 ruby​​ on Rails javascript 运行时环境

    我在我的机器上设置 ruby on Rails 时遇到问题 我一直在关注 Agile Web Development with Rails 这本书 到目前为止一切都进展顺利 我遇到的问题是当我输入时 rails server 我收到以下错误
  • Rails:RSpec - nil:NilClass 的未定义方法“cookie_jar”

    铁轨新手 尝试遵循迈克尔 哈特尔的教程 尝试添加辅助方法来模拟 RSpec 测试中的日志时陷入困境 describe when the a user has logged in and attempts to visit the page
  • 嵌套表单的解决方案

    我已经被这个问题困扰了一段时间 需要制作一个表格比赛 category与自定义输入 它应该取所有值信息表并构建输入 但棘手的部分是它应该保存到类别 信息 table class Competition lt ApplicationRecor
  • 为什么私有辅助方法仍然可以在视图中访问?

    另一个 为什么会这样 的问题 我注意到私有辅助方法仍然可以在视图中访问 为什么 有没有办法防止这种情况 例如 当具有只能从另一个助手中调用的助手方法时 帮手是混合在一起的模块 http www ruby doc org docs Progr
  • Rails:控制文件存储缓存大小

    Rails 中基于文件的缓存的文档说 请注意 缓存将不断增长 直到磁盘已满 除非您 定期清除旧条目 不幸的是 它没有提供任何有关如何定期清除旧条目的信息 是否设置合适的值 expires in完成这项工作还是清除缓存背后还有其他某种黑魔法
  • Rails3-jquery-autocomplete 如果没有可用数据则清除字段

    我正在使用rails3 jquery autocomplete 如果自动完成没有返回结果 是否可以清除自动完成字段的值 我试图阻止用户提交数据库中没有的值 我使用的是旧版本 但我实现了change处理程序autocomplete call
  • Rails:与自身的多对多关系

    我在创建此关联时遇到问题 考虑模型 Entry 我希望条目有许多作为父母的条目 并且我希望条目有许多作为孩子的条目 我想通过一个我称为 关联 的模型来实现这种关系 所以这是我尝试的 移民 class CreateAssociations l
  • nginx 504 网关超时

    我正在 nginx 上使用 phusion passenger 运行 Rails3 0 7 项目 当我正在做 ajax 时 大约需要 15 分钟来处理 调用 ajax 10 分钟后 它会跳出一个 Firebug 错误 显示 504 Gate
  • Rails 6 升级中未初始化的常量 ActiveRecord::ConnectionAdapters::ConnectionManagement (NameError)

    我目前正在将 Rails 项目从 v5 2 3 升级到 v6 0 我正在关注这个guide https guides rubyonrails org upgrading ruby on rails html升级铁轨 但我只停留在第一步 一旦
  • Rails 3 中的外键

    我理解 根据 Rails 理念 数据完整性检查应该在应用程序级别而不是数据库级别进行 和许多其他开发人员一样 我强烈反对 我发现了很多解决这个问题的讨论 但它们似乎都很陈旧 而且令人沮丧的是 它们似乎指向了不同的解决方案 我必须想象 Rai
  • PostgreSQL 字符串(255)限制 - Rails、Ruby 和 Heroku

    所以我有一个comments表的结构如下 Schema Information Table name comments id integer not null primary key body string 255 notified boo
  • 我应该如何升级 Rails 应用程序以使用最新版本的 Rails

    我正在开发一个目前使用 Rails 1 2 的 Rails 应用程序 所以我现在距离最新的稳定版本 Rails 2 3 还有很长的路要走 我应该如何进行迁移到新版本 Rails 的过程 我应该一次升级一个版本还是直接升级到 Rails 2
  • 通过重定向让 Flash 哈希值持续存在

    我的基本用例是做一些处理 设置flash notice 然后重定向到新页面 据我所知 重定向会重置 flash 标签 如果我错了 请纠正我 有没有办法获得坚持呢 使用会话不是一种选择 我已经使用 cookie 解决了这个问题 但我认为必须有

随机推荐