#<Artist:0xd7a8db8> 的未定义方法“分页”

undefined method `paginate' for #<Artist:0xd7a8db8>

我使用 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

paginate 方法仅适用于一组记录,而不适用于单个记录。当您使用 find 时,将返回一条记录。如果您希望能够分页,则有必要使用 where 而不是 find,尽管仅在可能返回多个艺术家的索引路由中。