按日期添加的集合的订单项(Rails)

时间:2018-01-16 15:06:58

标签: ruby-on-rails

我正在使用一个简单的Rails应用程序,它允许用户为Items添加书签并将其添加到Collections。我想按照它们添加到该集合的日期来订购集合中的项目。

物品型号:

class Item < ApplicationRecord
  belongs_to :user
  belongs_to :category
  has_many :collection_items
  has_many :collections, through: :collection_items
end

收集模型:

class Collection < ApplicationRecord
  belongs_to :user
  has_many :collection_items
  has_many :items, through: :collection_items 
end

Collection_Item模型:

class CollectionItem < ApplicationRecord
  belongs_to :item
  belongs_to :collection
end

如果尝试按created_at订购商品(请参阅下面的代码):

def show
  @collection_items = @collection.items.order(created_at: :desc)
end

但是,这当然会按照项目首次创建的日期对其进行排序 - 而不是将项目添加到集合中的日期。 我怎么能实现后者?

非常感谢你的帮助:)。

1 个答案:

答案 0 :(得分:1)

添加到集合的日期应该是created_at的{​​{1}}。所以你能做的就是按照这个顺序订购物品:

CollectionItem