2017-09-17 1 views
1

중첩 된 리소스를 찾을 수 없습니다 : 갤러리 ->를 많은 앨범이 -> 많은 사진 레일 : 나는 3 층 중첩 모델이 ID

을 가지고 내가 http://localhost:3000/galleries/1/albums/new 여기에서 새 앨범을 추가하려고 할 때 나는

는 "AlbumsController 번호의 액티브 :: RecordNotFound가 만든 'ID'=으로 갤러리를 찾을 수 없습니다 수 없습니다"

을 얻고있다

앨범 모드 L :

class Album < ApplicationRecord 
belongs_to :gallery 
has_many :photos 
    accepts_nested_attributes_for :photos 

갤러리 모델

class Gallery < ApplicationRecord 
    has_many :albums 
    accepts_nested_attributes_for :albums 
end 

경로 위해

.... 
resources :galleries do 
    resources :albums 
end 
resources :photos, only: [:index, :new, :create, :destroy] 
resources :photos, only: [:index] 
resources :albums do 
    resources :photos, :controller => "albums" 
end 

내가 갤러리를위한 표시 페이지 내에서 다음과 같이 호출, 앨범을 만들기 위해 페이지로 이동합니다 < % = link_to '새 앨범', new_gallery_album_path (@ galleries.id) %> 이것은 쓸개의 ID 1이있는 올바른 페이지로 연결됩니다 gallery_id는 내가 컨트롤러의 나머지 부분을 붙여 넣을 수 전무

def new 
    @gallery = Gallery.find(params[:gallery_id]) 
    @album = Album.new 
    @photos = @album.photos.build 
    end 
def create 
    @gallery = Gallery.find(params[:gallery_id]) 
    @album = Album.new(album_params) 

    respond_to do |format| 

...

로 hanlded 이유 링크

에서하지만 컨트롤러 ERY, 나는 정말 이해가 안 돼요 하지만 이제는 오류가 생성 함수의 라인을 가리키고 있습니다. @gallery = Gallery.find (params [: gallery_id]) 왜이 작업은 NEW에서 가능합니까?

답변

2

내가 물어 본 후 실제로 알아 냈습니다. 형태에서, 난 단지

%= form_for @album], :html => { :mutiplart... 

를 호출했지만

<%= form_for [@gallery,@album], :html => { :mu 

로 변경 한 후에는

근무