我正在使用 thumbs_up gem 让用户喜欢设计和产品。在用户个人资料中,我让它显示了用户喜欢的所有设计和产品。现在,我已将设计和产品连接到一个视图中,但它们是为设计+产品订购的“created_at DESC”。我想根据用户投票的时间来订购它,所以当用户对设计投票时,它首先出现在他们的个人资料上。这是我的代码
在模型中
def favorites
Design.joins(:votes).where('voter_id = ?', self.id).where('voteable_type = ?', 'Design').where('vote = ?', true)
end
def favs
Product.joins(:votes).where('voter_id = ?', self.id).where('voteable_type = ?', 'Product').where('vote = ?', true)
end
在控制器中
@user = User.find_by_username(params[:id])
@designs = @user.favorites
@products = @user.favs
@favorites = @designs.to_a.concat @products.to_a
@favorites.sort! {|t1, t2| t2.created_at <=> t1.created_at}
我什至删除了设计和产品的默认范围,以防万一,但它并没有解决它。
我也试过这个没有运气
Design.joins(:votes).where('voter_id = ?', self.id).where('voteable_type = ?', 'Design').where('vote = ?', true).order('created_at DESC')
每个投票都有一个时间戳“created_at”。所以我知道这是可能的。