2016-03-26 11 views
-1

im sanatçı kontroltanımsız yöntemi 'paginate': ve raylar 4 ve will_paginate kullanılarak <Sanatçı 0xd7a8db8>

def show 
    @artist = Artist.friendly.find(params[:id]).paginate(page: params[:page]) 
    end 

ve görünümü artists.show.html içinde

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' 

friendly_id. 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> 

ve bana bu hatayı

atmak
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 

yardım lütfen!

güncelleştirmesi;

i

def show 
    @artist = Artist.friendly.find(params[:id]) 
    @songs = @artist.songs.paginate(page: params[:page]) 
    end 

sayesinde @Ben Y

cevap

1

paginate yöntem yalnızca kayıtların bir koleksiyonu değil, tek tek üzerinde çalışacak sanatçı denetleyicisi bunu

düzeltin. find'u kullandığınızda, tek bir kayıt döndürülür. Sayfalandırmak istediğinizde, find yerine where kullanılması gerekir, bununla birlikte, yalnızca birden fazla sanatçının potansiyel olarak iade edileceği bir dizin yolunda gerekir.

+0

tamam, teşekkürler – anouar