2016-06-21 7 views
0

In meiner Web-App versuche ich eine Show-Aktion zu machen, in der die current_users-Fotos für ein bestimmtes Album angezeigt werden, wenn auf das Album geklickt wird. Jedes Mal, wenn ich auf den Link zur Show-Aktion klicke, erscheint ein Fehler, der besagt, dass 'Album nicht gefunden werden konnte mit' id '=: id [WHERE "Alben". "User_id" =?]'. Die Show Aktion sieht wie folgt aus:ActiveRecord :: RecordNotFound in AlbenController # show

def show 
    @album = current_user.albums.find(params[:id]) 
    @photos = @album.photos 
end 

Ansicht:

<div class="main"> 
<div class="main-background"> 

    <% @albums.each do |x| %> 
      <div class="big-albums"><%= link_to x.name, "/albums/:id", :style => "text-decoration:none;" %></div> 
    <% end %> 

    <div class="new-album"> 
     <%= link_to 'New Album', "/albums/new", :style => "text-decoration:none;" %> 
     <div class="plus-sign"> 
      <%= link_to '+', "/albums/new", :style => "text-decoration:none; color:black; font-size:80px; color:#85adad;" %> 
     </div>   
    </div> 

</div> 

Routen:

 get '/albums' => 'albums#index', as: :albums 
    get '/albums/new' => 'albums#new' 
    post '/albums/new' => 'albums#create' 
    get '/albums/:id' => 'albums#show' 
    get '/albums/:id/destroy' => 'albums#destroy' 
+0

Können Sie die Ansichtsdatei (Name und Inhalt) anzeigen, aus der Sie auf das gewünschte Album klicken? – Maxence

+0

Nur hinzugefügt Ansicht und Routen @Maxence – nums

Antwort

0

Ihr Problem ist die link_to URL Sie Anzeigen

link_to x.name, "/albums/:id" 

Das ist :id als das an die URL übergebene Argument zuweisen. Stattdessen möchten Sie etwas wie "/albums/#{x.id}" ausführen, sodass die Album-ID als ID-Parameter im URL-Pfad verwendet wird.

+0

Nach dem Versuch, dass ich eine Fehlermeldung "uninitialisierte Konstante Album :: Foto" @Leo Correa – nums

+0

Ihr Modell Album muss has_many: Fotos – DennisCastro

+0

@Nums haben Sie ein 'Foto' Modell und eine Assoziation auf 'Album' für' has_many: fotos'? –

Verwandte Themen