【发布时间】:2017-02-27 15:16:43
【问题描述】:
我正在尝试在一个 Rails 5 应用程序中合并三个 Active Record 数组,以便在我的主页上有一个不错的作业、论坛主题和博客集合。
我有以下代码:
application_controller.rb
def home
@blogs = Blog.limit(6)
@jobs = Job.where(approved: true).limit(6)
@forum_threads = ForumThread.includes(:forum_posts).limit(6)
@everything = @blogs + @jobs + @forum_threads
end
home.html.erb
<% @everything.sort_by(&:created_at).reverse.each do |item| %>
<% if item.is_a?(Job) %>
<%= render partial: "application/partials/home_job", locals: {item: item} %>
<% elsif item.is_a?(ForumThread) %>
<%= render partial: "application/partials/home_forum", locals: {item: item} %>
<% elsif item.is_a?(Blog) %>
<%= render partial: "application/partials/home_blog", locals: {item: item} %>
<% end %>
<% end %>
我遇到的问题是这段代码没有按created_by 的日期顺序显示记录,而是从看似随机的日期开始的工作、论坛主题和博客的随机集合。
如果我添加了一个新工作,它不会出现在/home 页面上显示的集合中。但是,如果我从数据库中删除所有记录并开始添加新记录,则代码可以正常工作并以正确的顺序显示帖子,并具有我期望的行为。
我无法将此代码实时推送到 Heroku,因为我无法删除生产中已经存在的所有记录。几乎就像有某种需要清除的缓存。有谁知道怎么回事?
【问题讨论】:
标签: ruby-on-rails heroku activerecord