2010-12-13 55 views
1

我使用paginate_by_sql作为模型的函数。用paginate_by_sql搜索和排序 - will_paginate

def index 

@refprobes = Refprobe.paginate_by_sql ["select * from ref_probe 
             where RPR_OID in 
           (SELECT DISTINCT RPR_OID 
           FROM REF_PROBE 
           JOIN ISH_PROBE ON RPR_OID = PRB_MAPROBE 
           JOIN ISH_SUBMISSION ON PRB_SUBMISSION_FK = SUB_OID 
           JOIN SEC_USER_PI ON USP_PI_ID = SUB_PI_FK 
           WHERE USP_USER_FK = " + session[:user_id]+ ")"], :page => params[:page], :per_page => 10 

end 

我想添加搜索和排序到上面。

我该怎么做?

很多很多谢谢

+0

在您的代码上使用代码标记,以使其可读。 – 2010-12-13 19:10:54

+0

错误,请问您在编写帖子时如何使用代码标签 – Kim 2010-12-13 19:19:52

+0

,选择代码并点击上面带有二进制代码的按钮 – nunopolonia 2010-12-13 19:42:21

回答

0

我意识到这是相当古老,但刚刚碰到它。

我猜你总是可以做这样的事情:

sql = <your existing sql>  
order = " ORDER BY #{params[:order]}"  
sql_to_paginate = sql + order 

另一种选择是使用Rails的语法来重写查询,然后你可以使用.reorder()方法。

希望这可以帮助别人。