我还是Rails的新手...我需要在我的产品型号上编写一个self.method来查找每个位置的下一个产品。我在页面上显示1个产品,并希望列表中的下一个。
def self.next_product
product = Product. # current product.position +1
end
显然这不起作用......我仍然是编写方法的新手。任何人吗?
我正在使用Rbates Railscast 147和Acts_as_list,我需要弄清楚如何获得下一个产品
非常感谢
答案 0 :(得分:1)
acts_as_list已经添加了获取下一个和上一个项目的方法,它们被称为 higher_item (位置-1)和 lower_item (位置+1)。但是,它们是实例方法,而不是类方法(self。),因为要在列表中找到“下一个项目”,您需要从项目(Product类的实例)开始,而不是Product类本身。
=> p = Product.first
<Product id: 1, position: 1>
=> p.lower_item
<Product id: 2, position: 2>
答案 1 :(得分:0)
class Product
def next_product
lower_item or self
end
def previous_product
higher_item or self
end
end
link_to "Next", product_path(@product.next_item)
link_to "Previous", product_path(@product.previous_item)