我有一个3层嵌套模型: 画廊 - >有很多专辑 - >有很多照片
当我尝试从这里添加新专辑时 http://localhost:3000/galleries/1/albums/new 我正在
AlbingsController中的" ActiveRecord :: RecordNotFound #create Couldn' t 找到带有' id' ="
的图库
专辑模型:
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
为了进入创建相册的页面,我在图库的“显示”页面中调用它 &lt;%= link_to&#39; New Album&#39;,new_gallery_album_path(@ galleries.id)%&gt; 这会导致正确的页面在链接中具有库的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|
...
我可以粘贴控制器的其余部分,但现在错误指向create函数中的行 @gallery = Gallery.find(params [:gallery_id]) 为什么这在新的内容中可以正常工作但不适用于创作?
答案 0 :(得分:2)
在我问之后,实际上想通了。在表格中,我只是打电话
%= form_for @album], :html => { :mutiplart...
但是在将其改为
之后 <%= form_for [@gallery,@album], :html => { :mu
有效