ruby-on-rails - 如何按照特定顺序显示查询到的记录

标签 ruby-on-rails ruby-on-rails-3

我在主题章节之间有HABTM关系,现在我想在主题下按特定顺序显示章节。

例如:特定章节可能是一个主题下的第 2 章,也可能是另一个主题下的第 8 章。

我该怎么做?提前致谢。

最佳答案

在这种情况下,您有一个不平凡的多对多关系,连接表需要包含的不仅仅是每个主表的外键。

因此,您需要在主题和章节上从 HABTM 迁移到 has_many :through,并将连接表更改为其自己的模型,该模型不仅关联两个主表彼此之间,而且还将顺序存储在列中(顺便说一下,您不应该将其命名为“order”,因为它会混淆 SQL 和 Rails :-)。

从标准 Rails HABTM 模型进行转换非常简单,但有一点建议:想一想是什么使曾经只是一个连接表的模型成为真正的模型......并将其用作新模型的名称模型(以及关联的新表)。在简单的 HABTM 中,您将创建一个表 chapters_topics,当它成为模型时,它可能是“ChapterTopic”(生成表 chapter_topics)。

关于ruby-on-rails - 如何按照特定顺序显示查询到的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13687906/

相关文章:

ruby-on-rails - js.erb 文件中的 if 语句基于 param_name will_paginate (Ajax 调用)

javascript - Bootstrap 隐藏模式在使用 ajax 的 Rails 6 中不起作用

ruby-on-rails - 如何区分 Newrelic 中的 Rails API 调用?

ruby-on-rails - HTTParty 正在转义 JSON

ruby-on-rails-3 - ActiveRecord 查询对我的小脑袋来说太难了

ruby-on-rails - 使用 HTTParty 发送多个文件

ruby-on-rails-3 - 计算多个属性的排名

ruby-on-rails - Rails 3-time_ago_in_words说 “ABOUT 2 hours ago”

ruby-on-rails - Rails 应用试图更新不存在的列

jquery - 对于 jQuery、Rails 3 更新,您能否呈现具有多个表单而不是一个表单的页面?