首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails -如何在帖子列表和单个帖子上显示帖子编号?

Rails -如何在帖子列表和单个帖子上显示帖子编号?
EN

Stack Overflow用户
提问于 2013-04-03 19:19:59
回答 4查看 68关注 0票数 0

我目前正在构建一个应用程序,人们在其中添加一个项目,然后将更新添加到项目中。我想对这些更新进行编号,例如:

更新1、更新2等...

有一个列表视图,也有一个单独的视图,它将在顶部显示更新编号。

我已经找到了在循环遍历记录以创建列表时可以使用的各种索引计数解决方案,但是我遇到了如何在单个视图上显示更新号的问题。

我是否应该将更新编号与记录一起存储在数据库中?

我的模式的相关部分:

代码语言:javascript
复制
create_table "projects", :force => true do |t|
    t.string   "title"
    t.string   "image"
    t.datetime "created_at", :null => false
    t.datetime "updated_at", :null => false
    t.integer  "user_id"
  end

  add_index "projects", ["user_id"], :name => "index_projects_on_user_id"

  create_table "updates", :force => true do |t|
    t.string   "title"
    t.text     "text",       :limit => 255
    t.datetime "created_at",                :null => false
    t.datetime "updated_at",                :null => false
    t.integer  "project_id"
  end

  add_index "updates", ["project_id"], :name => "index_updates_on_project_id"
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-04-03 19:31:51

根据我的理解,你有一个包含所有更新的更新模型。因此,它们的in在单个项目中不是按顺序排列的。

我认为一个简单而安全的解决方案是为这个模型添加一个update_number字段。

然后,您可以创建一个方法,以便在每次创建新的更新记录时保存更新编号,例如在此项目中的最后一次更新时使用+1。

在关于删除的注释中添加问题

我考虑过这种情况,但我认为你永远不应该删除更新(因为这是一个更新,无论对错),所以我没有说出来。但是,使用这个额外的字段解决方案,您可以轻松地重新构建索引。只需编写一个方法来重建索引,并将其挂接到任何Update的删除中。

附注:如果我是你,我会将更新设置为非活动,而不是物理删除它。因为你的用户是项目团队成员,他们应该有足够的责任感。想想Git,一旦推送给团队或公众,就很难更改提交。

票数 1
EN

Stack Overflow用户

发布于 2013-04-03 19:31:39

您可以使用counter cache,也可以直接使用@project.updates.count

票数 0
EN

Stack Overflow用户

发布于 2013-04-03 20:12:28

您可以按created_at排序,然后使用each_with_index在视图中迭代。这不需要更改架构。您也可以使用acts_as_list

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15785912

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档