ruby on rails - 如果我有2个型号,我可以同时对它们进行排序吗?

时间:2016-09-07 13:00:01

标签: ruby-on-rails ruby

我们说我有一个图像模型和一个视频模型如何在日期索引中显示它们

2 个答案:

答案 0 :(得分:1)

我要去火炬。 :)塞尔吉奥的意思是这样的:

class Media < ActiveRecord::Base
  belongs_to :image
  belongs_to :video
end

然后您可以轻松地对其进行排序/过滤/分页

@media = Media.where('created_at > ?', 2.days.ago).order(:id)

添加新图像/视频时,不要忘记创建相应的媒体记录

image = ...
Media.create(image: image)

答案 1 :(得分:0)

您可以使用UNION sql函数实现此目的:

ActiveRecord::Base.connection.execute('
  (
  SELECT images.id, images.created_at, 'Image' as type
  FROM images
  ) UNION ALL (
  SELECT videos.id, videos.created_at, 'Video' as type
  FROM videos
  )
  ORDER BY created_at
')

如果您需要添加字段,只需添加它们(但对于两个选择)