Ruby on rails 是否将设定起始记录?
我有一本相册 其中有几张照片,ID:4,9,10,11,31——全部用于相册:3 我的照片控制器中的DEF显示有以下内容: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
@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使用视图查看单击的照片,但会显示 默认为页面的页码 用户单击的照片
- 每个项目的相册-相册索引
- 每个相册的照片-相册显示
- 摄影展-摄影展
这听起来对吗?仍然在做,还没有运气。感谢您的建议。我不知道您为什么要使用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 %>