我绕圈子,希望有人可以帮助我...
我的rails应用程序有一个供应商模型(supplier.rb)。
每个供应商都有一个展示页面(suppliers / show.html.haml)。每个供应商也被排名(即排名与其他供应商相比)。我的目标是让每个供应商/ show.html.haml页面显示指向下一个排名的供应商/ show.html.haml页面的链接。
在supplier.rb中:
def rank_for_category(category)
Supplier.for_category(self.category).order_by_rating.index(self)
end
def next_rank_supplier
Supplier.for_category(self.category).order_by_rating.index(self) + 1
end
在suppliers / show.html.haml中:
%p View the #{@supplier.next_rank_as_text}th ranked # {@supplier.category.name} in the UK
= link_to 'next rank', supplier_path(@supplier.next_rank_supplier)
这不对。也许我需要另一个功能来获得@ supplier.next_rank_supplier吗?
希望有人可以提供帮助。谢谢。
答案 0 :(得分:1)
您可以访问数组中的下一个元素。
def self.ordered_suppliers(category)
for_category(category).order_by_rating
end
def rank
Supplier.ordered_suppliers(self.category).index(self)
end
def next_rank_supplier
Supplier.ordered_suppliers(self.category)[rank+1]
end
答案 1 :(得分:0)
嗯,这种方法似乎没有返回供应商,它似乎返回排名。您尚未显示供应商型号,因此我无法为您编写新方法。
def next_rank_supplier
Supplier.for_category(self.category).order_by_rating.index(self) + 1
end