Я использую рельсы 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 => '« ',
:next_label => '»',
: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);
}
})
})
`