Ruby on rails 是否将设定起始记录?

Ruby on rails 是否将设定起始记录?,ruby-on-rails,ruby-on-rails-3,will-paginate,Ruby On Rails,Ruby On Rails 3,Will Paginate,我有一本相册 其中有几张照片,ID:4,9,10,11,31——全部用于相册:3 我的照片控制器中的DEF显示有以下内容: @photo = @photoalbum.photos.order("created_at ASC").paginate :page => params[:page], :per_page => 1 问题是,如果URL为:/photo_albums/3/photos/10,则上面的代码从记录4开始,而我希望它从10开始分页,就像在URL中一样 有人知道如何在w

我有一本相册 其中有几张照片,ID:4,9,10,11,31——全部用于相册:3

我的照片控制器中的DEF显示有以下内容:

@photo = @photoalbum.photos.order("created_at ASC").paginate :page => params[:page], :per_page => 1
问题是,如果URL为:/photo_albums/3/photos/10,则上面的代码从记录4开始,而我希望它从10开始分页,就像在URL中一样

有人知道如何在will_paginate中设置起始ID吗

谢谢

更新

另外,请注意分页链接正在呈现此链接:

/photos/10?page=2&photo_album_id=3
它们的渲染时间应如下所示:

/photo_albums/3/photos/?page=2
听起来对吗

以下是型号信息:

class PhotoAlbum < ActiveRecord::Base
    has_many :photos, :dependent => :destroy

class Photo < ActiveRecord::Base
    belongs_to :photo_album
class PhotoAlbum:销毁
类照片
更新2-所需的用户流…

  • #1-用户看到相册列表
  • #用户点击相册
  • #3用户查看相册中的照片列表
  • #4使用视图查看单击的照片,但会显示 默认为页面的页码 用户单击的照片
根据流量更新3个控制器

  • 每个项目的相册-相册索引
  • 每个相册的照片-相册显示
  • 摄影展-摄影展

这听起来对吗?仍然在做,还没有运气。感谢您的建议。

我不知道您为什么要使用Show方法。要使用分页,您应该使用PhotoAlbum控制器的索引方法

所以你的链接应该是

link_to('Show Photos', photo_album_path(@photo_album, page=>params[:page])
如果只想显示一张照片,很酷,但不要使用分页

link_to('Photo), photo_album_photo_path(@photo_album, @photo))
正如所指出的,您应该使用
索引
来显示照片列表,而不是
显示
,即使您每页只显示一张照片

在控制器中使用finder可在视图中显示WillPaginate对象:

def index
  @photos = @photoalbum.photos.order("created_at ASC").paginate :page => params[:page],
    per_page => 1
end
在视图中,will_paginate知道has_many关系,因此它将包括父相册的参数

<%= will_paginate(@photos) %>
您可能期望
/photo\u albums/3/photos?page=2
,但will\u paginate不使用嵌套的资源路径。这没关系,因为URL最终位于相同的位置,即
{:controller=>:photos,:action=>:index,:photo\u album\u id=>3}

如有必要,可以显式传入父级以覆盖:

<%= will_paginate(@photos,:params => {:photo_album_id => 3}) %>

谢谢,这很有趣。只是为了确保我对流程的了解#1-用户查看相册列表,#2,用户单击相册,#3用户查看相册中的照片列表,#4使用视图查看单击的照片,但将分页显示并默认为用户单击的照片的页码。鉴于上述情况,您的链接将位于何处?我需要为#3创建照片链接的帮助?PhotoAlbum索引显示用户所有相册的列表,而不是相册中的照片列表。“page=>params[:page]”来自何处?试图了解我如何使用它来设置相册中的起始照片?好的,谢谢,但是如果相册中有8张照片,并且用户单击以查看照片4,那么如何使用索引以正确的分页顺序显示该照片?另外,我应该如何链接到照片查看页面?我现在有“photo_path(photo)”,但那是显示页面,听起来像你说我需要使用索引?所以下面的问题是我有一个相册索引,它不能用于显示相册列表和渲染照片。两种不同的观点?Rightundefined方法“photo\u album\u photo\u path”用于“该死,你很快:)尝试
photo\u album\u photos\u path(@photo\u album)
,或传入相册ID。
<%= will_paginate(@photos,:params => {:photo_album_id => 3}) %>
<% @photos.each_with_index do |photo, index| do %>
  <%= link_to "View photo",
    photo_album_photos_path(@photo_album, :page => index) %>
<% end %>