在我的Rails应用中,我有一个函数next
,我在show
模板中使用该函数链接到下一个product
(按price
排序):
class Product < ActiveRecord::Base
belongs_to :user
def next
Product.where("user_id = ? AND price > ?", user_id, price).order("price ASC").first
end
end
问题是此功能仅在所有产品具有不同的价格时才有效。当有多个产品具有相同的价格时,next
函数会随机选择一个产品(?),从而跳过所有其他产品。
有没有办法让这个功能返回下一个产品,即使价格相同? (如果价格相同,可以通过ID或日期订购产品)
我尝试用>
替换>=
,但这不起作用。
感谢您的帮助。
答案 0 :(得分:0)
您必须在id
子句和where
中使用order
def next
Product.where("user_id = ? AND price >= ? AND id > ?", user_id, price, id).order("total, id").first
end