我正在使用rails 4和will_paginate以及friendly_id
source 'https://rubygems.org'
gem 'rails', '4.2.6'
gem 'friendly_id', '~> 5.1.0'
gem 'sorcery'
gem "paperclip", "~> 4.3"
gem 'will_paginate', '3.0.7'
gem 'bootstrap-will_paginate', '0.0.10'
在艺术家控制器中
def show
@artist = Artist.friendly.find(params[:id]).paginate(page: params[:page])
end
和视图artists.show.html.erb
<div class="text-center">
<%= will_paginate %>
</div>
<div class="list-group">
<% @artist.songs.each do |song| %>
<%= link_to song.title, artist_song_path(@artist, song), class: 'list-group-item' %>
<% end %>
</div>
它给我这个错误
NoMethodError in ArtistsController#show
undefined method `paginate' for #<Artist:0xd7a8db8>
Extracted source (around line #3):
class ArtistsController < ApplicationController
def show
@artist = Artist.friendly.find(params[:id]).paginate(page: params[:page])
end
end
请帮忙!
更新;
我修好了
艺术家控制器中的
def show
@artist = Artist.friendly.find(params[:id])
@songs = @artist.songs.paginate(page: params[:page])
end
谢谢@Ben Y
答案 0 :(得分:1)
paginate
方法仅适用于记录集合,而不是单个记录集合。使用find
时,将返回单个记录。如果您希望能够进行分页,则需要使用where
而不是find
,但仅在索引路由中可能会返回多个艺术家。