Я использую рельсы 3 и will_paginate для просмотра фотографий. У меня есть работа, но мне также понравится, чтобы пользователи могли просматривать следующую запись, щелкнув изображение, а не следующую кнопку в навигации по страницам. Очень похоже на просмотр Facebooks изображения или что-то вроде следующего: http://exposure.blogocracy.org/demos/demo1.htmlКак вы можете перейти к следующему набору записей при нажатии изображения с помощью will_paginate
Я не знаю, если will_paginate имеет каких-либо параметров, чтобы это работало ... любая помощь или направление будет очень высоко
контроллер - изображение - действие: галерея
def gallery @images = Image.all.paginate(:per_page => 1, :page => params[:page]) end
просмотр изображений - галерея
<div id="slideshow"> <% @images.each do |image| %> <%= image_tag("gallery/"+image.path, :alt => "") %> <% end %> </div>
вид макета - _nav
<%= will_paginate @images, :previous_label => '« ', :next_label => '»', :params => { :controller => "images", :action => "gallery" }, :separator => ' ', :inner_window => 4, :outer_window => -1 %>
----------- EDIT --------------
В работе вокруг Я решил использовать javascript/jquery и связать его вручную. Это действительно действительно уродливо, но я использую его, пока не найду правильный способ сделать это.
` $ (документ) .ready (функция() { $ ('# ДИВ слайд-шоу IMG'). Жить ('нажмите', функция() { вар has_images = '<% = @has_image%> '; if (has_images == 1) { var page =' <% = @ next_image.id%> '; var url ='/images/gallery? Page = '+ страница window.location.replace (url); } еще { вар URL = '/ изображений/галерея страница = 1' window.location.replace (URL); }
}) }) `
Спасибо за ваш ответ Oluf! Я не уверен, что Exposure может обрабатывать разбиение на страницы с активной записью так же легко, как will_paginate. Однако я использовал какой-то действительно плохой код jquery в качестве работы, пока не выясню лучшее решение. –