2011-03-31 45 views
1

嗨 我想知道如何解决我与分页宝石“Kaminari”有关的问题。Rails3 Kaminari未定义.all

对于我所了解的你不能分页@user = User.all.page(5)?

但是如果我有这个代码并想分页,是否有可能或者是否需要更改代码呢?

@price = Price.joins(:retailer, :retailer => :profile). 
    where(['product_id=? AND size_id=?', params[:prod_id], params[:si_id]]). 
    group(:retailer_id).order("SUM((prices.price * #{params[:amount].to_i}) + profiles.shippingCost)").all 

我收到现在,当applying.page(5)该代码是

undefined method `page' for #<Class:0x000001023c4558> 

回答

1

你不需要.all因为加入通话,哪里,并可沿着组唯一,正在为您返回符合您标准的对象数组。除去实例变量上的.all和call页面(您可能想要将其重命名为@pages或其他复数形式)。

+0

嗨,感谢您的回复,我将代码更改为 @prices = Price.select(“'prices'。*”)。joins(:retailer,:retailer =>:profile)。 其中(['product_id =?AND size_id =?',params [:prod_id],params [:si_id]])。 ():((price.price *#{params [:amount] .to_i})+ profiles.shippingCost)“)。page(params [:page]) 但现在我收到此错误 – Philip 2011-03-31 15:53:59

+0

字段列表中的'retailer_id'列不明确:SELECT COUNT(*)AS count_all,retailer_id AS retailer_id FROM'prices' INNER JOIN' retailers' ON'retailers'.'id' ='prices'.'retailer_id' INNER INNER JOIN' profiles' ON'profiles'.'retailer_id' ='retailers'.'id' WHERE(product_id ='1'AND size_id ='3')GROUP BY retailer_id,retailer_id ORDER BY SUM((prices.price * 1) + profiles.shippingCost) – Philip 2011-03-31 15:54:35

+0

在视图 – Philip 2011-03-31 15:55:12