Как перейти к следующему набору записей при нажатии на изображение с помощью will_paginate? - PullRequest
0 голосов
/ 29 декабря 2010

Я использую рельсы 3 и will_paginate для просмотра фотографий. У меня это работает, за исключением того, что мне бы тоже хотелось, чтобы пользователи могли просматривать следующую запись, щелкая изображение, а не следующую кнопку в навигации по страницам. Очень похоже на просмотр изображений в Facebook или что-то вроде следующего: http://exposure.blogocracy.org/demos/demo1.html

Я не знаю, есть ли в 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 => '&laquo; ', :next_label => '&raquo;', :params => { :controller => "images", :action => "gallery" }, :separator => ' ', :inner_window => 4, :outer_window => -1 %>

----------- EDIT --------------

В качестве обходного пути я решил использовать javascript / jquery и связать его с руководством. Это действительно ужасно, но я использую его, пока не найду правильный способ сделать это.

` $ (документ) .ready (function () { $ ('div # slideshow img'). live ('click', function () { var has_images = '<% = @has_image%>'; if (has_images == 1) { var page = '<% = @ next_image.id%>'; var url = '/ images / gallery? page =' + page window.location.replace (URL); } еще { var url = '/ images / gallery? page = 1' window.location.replace (URL); }

}) }) `

1 Ответ

0 голосов
/ 29 декабря 2010

Пример, на который вы ссылаетесь - это плагин jQuery с именем Экспозиция Почему бы вам просто не использовать это?

И я бы не рекомендовал Will_paginate для того, что вы хотите.

Олуф Нильсен

...