paginate_by_sql, ошибка следующей страницы - PullRequest
0 голосов
/ 07 октября 2010

Я использую will_paginate (3.0.pre2) с rails 3.0.0.rc. Первая страница работает нормально, но когда я перехожу на страницу 2, она ничего не возвращает, потому что will_paginate неправильно устанавливает запрос для страницы 2.

Контроллер:

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 = 'search'), когда оно должно быть (ids = '1')

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

Чего мне не хватает, чтобы можно было исправить запрос на странице 2?

1 Ответ

0 голосов
/ 09 октября 2010

Поговорил с разработчиком will_paginate и выяснил, что лучший способ для атаки - использовать scoped_by_column_name (... column_value ...). Paginate (... условие ...)

Надеюсь, это кому-нибудь поможет.:)

...