2017-09-17 21 views
1

とネストされたリソースが見つかりませんでした: ギャラリーを - >多くのアルバムを持っている - 私はここに http://localhost:3000/galleries/1/albums/new から新しいアルバムを追加しようとすると>は、多くの写真レール:私は3層ネストされたモデル持っているID

を持っています私は

アルバムモード "のActiveRecord :: RecordNotFound AlbumsController#では、 '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 Album'、new_gallery_album_path(@ galleries.id)%> これは、胆嚢のID 1を持つ正しいページにつながりますリンク

しかしgallery_idがnilの

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]) なぜこれは新しく作成されたもののOKですが、作成はできませんか?

答えて

2

私が尋ねた後、実際にそれを理解しました。フォームでは、私だけ

%= form_for @album], :html => { :mutiplart... 
を呼んでいた。しかし

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

にそれを変更した後、それは

を働きました
関連する問題