2017-04-22 63 views
0

我有一個奇怪的問題,我似乎無法弄清楚,也不知道如何谷歌。顯示操作在嵌套顯示頁面不工作

讓我來解釋一下什麼是錯誤之前進入代碼的東西。

我有一個專輯,其中有許多照片(照片屬於冊頁)。

相冊工作正常。照片工作正常。

當我嘗試點擊照片中顯示鏈接......這就是事情似乎橫着走的,也就是說,沒有了它的第一個作品之後。

任何想法?請讓我知道是否需要進一步的信息。

這個問題似乎是從節目的行動我的照片控制器來,也就是這樣的:

# app/controllers/photos_controller.rb 
def show 
    @album = Album.find(params[:album_id]) 
    @photo = @album.photos.find(params[:id]) 
end 

正在生成的錯誤是這樣的:

ActiveRecord::RecordNotFound in PhotosController#show 
Couldn't find Album with 'id'=4 

怪異的一部分是, ablum作品的第一張照片。這是所有其他後續照片不起作用。

這此app/views/photos/show.html.erb

<h1>Album Details</h1> 

<b><p>Title</p></b> 
<p><%= @album.title %></p> 

<b><p>Descriptions</p></b> 
<p><%= @album.description %></p> 

<%= link_to "All Albums", albums_path %> 

<h3>Photos</h3> 
<% @album.photos.each do |photo| %> 
    <p> 
    <b>Title</b> 
    <%= photo.title %> 
    <%= link_to 'Show', album_photo_path(photo) %> 
    </p> 
<% end %> 

<h3>Add More Photos</h3> 
<%= form_for([@album, @album.photos.build]) do |f| %> 
    <p> 
    <%= f.label :title %><br /> 
    <%= f.text_field :title %> 
    </p> 
    <p> 
    <%= f.submit %> 
    </p> 
<% end %> 
+0

「當我試着點擊照片中顯示鏈接」,你能添加代碼,該PARAMS? –

+1

什麼是路線? –

回答

1

在我看來,你LINK_TO用於顯示照片丟失專輯的ID。

而不是

<%= link_to 'Show', album_photo_path(photo) %> 

它應該是

<%= link_to 'Show', album_photo_path(@album, photo) %> 

因爲它看起來像:album_id預計從照片的獨立參數:ID。

+0

剛剛看到你的答案,現在就試用了。有效。謝謝。如果可以的話,你會介意多加說明一下這個「(@album,photo)」嗎?當涉及到關聯時,我有一個巨大的弱點,它的代碼.. – user273072545345

+1

@ user273072545345沒問題,我也必須經歷它。基本上,因爲你的照片嵌套在相冊中,所以url將會像**/albums/1/photos/2 **一樣。爲了讓Rails知道用於**相冊**「1」的** id **,您必須將相冊對象傳遞給鏈接幫助器。所以,當你通過**(@專輯,照片)時,真正發生了什麼**鏈接助手看到**(album_id:1,id:2)**,所以它建立鏈接/相冊/ **:album_id **/photos/**:id ** –