我正在使用Ruby on Rails创建一个博客应用程序,并希望在主页上显示30篇"精选"文章。
我已经考虑过在文章表上使用布尔属性"精选",但是我对此有一些问题;
- 如果我有 4000 篇文章,我必须搜索所有文章才能找到精选的 30 篇文章。
- 3970 篇文章将有一个空列。
我想知道是否有更好的方法 - 例如创建另一个仅存储特色文章 ID 的数据库表?
提前谢谢。
我认为在您的情况下,最好的决定是对特色文章使用模型范围。
class Article < ApplicationRecord
scope :featured, -> { where(featured: true) }
end
并从您的轨道视图中使用此示波器
<% @articles.featured.each do |article| %>
<p><%= link_to article.subject, article_path(article) %></p>
<% end>
链接到 Ruby on Rails Guide 中的示波器