2010-10-07 48 views
0

我在rails 3.0.0.rc中使用了will_paginate(3.0.pre2)。第一页正常,但是当我转到第2页时,它没有返回任何内容,因为第2页的查询没有被will_paginate正确设置。paginate_by_sql,下一页错误

控制器:

page = params['page'].blank? ? 1 : params['page'] 
@posts = Post.paginate_by_sql (['select * from Foo_Table where ids = ?', params[:ids]], :page=>page, :per_page=>50) 
@pag_params = {:ids=>params[:ids]} 

检视:

<%= will_paginate @posts, :params=>@pag_params %> 

连结至第2页是:

http://localhost:3000/posts/search?page=2&ids=1 

日志显示where子句显示了不正确的(IDS = '搜索')当它应该是(ids ='1')

SELECT * FROM `Foo_Table` WHERE (ids = 'search') 

我错过了什么,以便能够纠正第2页的查询?

回答

0

谈过的will_paginate的开发商和发现,攻击这一点的最好方法是使用scoped_by_column_name(... ... COLUMN_VALUE)。分页(... ...条件)

希望这有助于某人。 :)