當我們看到嵌套參數和他們的控制器時,我似乎無法得到路線的hang hang。後來編輯 - 航線看起來很好,但PARENT_ID不保存Rails嵌套的屬性不顯示在SHOW /不保存父母的ID
在我的路線我有
resources :galleries do
resources :album
end
然後顯示在控制器
def show
@albums = Album.find(params[:id])
@photos = @albums.photos.all
end
def index
@albums = Album.includes(:photos).all
end
def new
@gallery = Gallery.find(params[:gallery_id])
@album = @gallery.albums.build
@photos = @album.photos.build
end
def create
@gallery = Gallery.find(params[:gallery_id])
@album = @gallery.albums.new(album_params)
respond_to do |format|
if @album.save
params[:photos]['image'].each do |a|
@photo = @album.photos.create!(:image => a, :album_id => @album.id)
end
format.html { redirect_to gallery_path(@gallery.id), notice: 'Post was successfully created.' }
模型都是這樣
class Album < ApplicationRecord
belongs_to :gallery
has_many :photos
accepts_nested_attributes_for :photos
end
class Gallery < ApplicationRecord
has_many :albums
accepts_nested_attributes_for :albums
end
在我畫廊的形式中,我看到所有畫廊列值都很好。 現在我想顯示其專輯這樣的首發名單,但沒有顯示出來:
<% @gallery.albums.each do |album| %>
<%= album.name %>
<%= link_to "Destroy", album, method: :delete %>
<% end %>
原來,畫廊的PARENT_ID當我創建一個新的專輯沒有被保存
我把相冊創建這樣
<%= link_to 'New Album', new_gallery_album_path(@galleries.id) %>
導致這個網址http://localhost:3000/galleries/1/albums
我並不完全相信從創建定義缺失爲了要保存的gallery_id當我申請@ Esther的建議
畫廊之前保存的專輯
後來編輯
控制檯加載(1.0ms)SELECT「galleries」* FROM「galleries」WHERE 「galleries」。「id」= $ 1 LIMIT $ 2 [[「id」,1],[「LIMIT」,1]](0.0ms) BEGIN SQL(0.0ms)INSERT INTO「albums」(「band」,「gallery_id」, 「created_at」,「updated_at」)VALUES($ 1,$ 2,$ 3,$ 4)RETURNING「i d「 [[」ban d「,」test「],[」gallery_id「,1],[」created_at「,」2017-09-18 21:09:59.805397「],[」updated_at「,」2017 -09-18 21:09:59.805397" ]]
(0.0ms)COMMIT(0.0ms)BEGIN
以及修改所述控制器後使用@gallery.albums.create(album_params)
代替@gallery.albums.create
廊負荷( (0.0ms)SELECT「galleries」。* FROM「galleries」WHERE 「galleries」。「id」= $ 1 LIMIT $ 2 [[「id」,1],[「LIMIT」,1]] (0.0ms)BEGIN SQL(1.0ms)INSERT INTO「albums」(「band」,「gallery_id」,「created_at」,「updated_at」)VALUES($ 1,$ 2,$ 3,$ 4)RETURNING「id」 [[「ban d」, 「new」],[「gallery_id」,1],[「created_at」,「2017-09-19 18:28:41.093138」],[「updated_at」,「2017-09-19 18:28:41.093138」] ] (0.0ms)COMMIT (0.0ms)BEGIN (1.0ms的)COMMIT (0.0ms)BEGIN
謝謝@esther 不知道創建就是這樣,但現在我也學到了這一點。 – Andrea