需要一个自我。使用Acts_as_list在Rails模型上的方法

时间:2010-02-12 00:53:53

标签: ruby-on-rails model methods

我还是Rails的新手...我需要在我的产品型号上编写一个self.method来查找每个位置的下一个产品。我在页面上显示1个产品,并希望列表中的下一个。

def self.next_product
product = Product. # current product.position +1
end

显然这不起作用......我仍然是编写方法的新手。任何人吗?

我正在使用Rbates Railscast 147和Acts_as_list,我需要弄清楚如何获得下一个产品

非常感谢

2 个答案:

答案 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)