我正在創建一個簡單的應用程序來輸入和顯示相冊。我可以創建一個唱片(專輯)併爲其分配一個藝術家(這是在藝術家控制器中創建的)。我想將軌道添加到記錄中,並使用一個控制器(記錄控制器)以一種形式(使用簡單形式)執行此操作。belongs_to名稱屬性不保存嵌套導軌形式
這裏是我的記錄模式
class Record < ActiveRecord::Base
belongs_to :artist
has_many :tracks
accepts_nested_attributes_for :tracks
這裏是我的軌道模型
class Track < ActiveRecord::Base
belongs_to :record
這裏的記錄控制器
class RecordsController < ApplicationController
def index
@records = Record.all
end
def new
@record = Record.new
end
def create
@record = Record.create(record_params)
@record.tracks.build
@record.save!
redirect_to records_path
end
def record_params
params.require(:record).permit(:name, :artist_id, record_tracks_attributes: [:name])
end
,這裏是我的記錄/新/ html.haml頁
= simple_form_for @record do |f|
= f.collection_select(:artist_id, Artist.all, :id, :name, prompt: true)
= f.input :name
= f.simple_fields_for :record_tracks do |t|
= t.input :name
= t.button :submit
= link_to 'add artist', new_artist_path
這似乎保存正常,但是當我看到在控制檯中,我得到以下
> Track.last
Track Load (0.6ms) SELECT "tracks".* FROM "tracks" ORDER BY "tracks"."id" DESC LIMIT 1
=> #<Track id: 20, name: nil, created_at: "2015-10-05 17:30:30", updated_at: "2015-10-05 17:30:30", record_id: 39>
爲什麼叫不節省了軌道,我不能工作了。我哪裏錯了?任何幫助將不勝感激。
感謝奧列格!這讓它工作! –