我想使用同一個模型在一個視圖(new.erb.html)中創建多個記錄,同時使用單個提交。在軌道中的同一模型的新視圖中追加表單部分
比如我有一個名爲報表模型的一些領域,例如標題,描述和日期
如何呈現相同的形式分多次當我點擊添加按鈕?我認爲這不是一個被模仿的問題,因爲它始終是相同的模型動作。 感謝
我想使用同一個模型在一個視圖(new.erb.html)中創建多個記錄,同時使用單個提交。在軌道中的同一模型的新視圖中追加表單部分
比如我有一個名爲報表模型的一些領域,例如標題,描述和日期
如何呈現相同的形式分多次當我點擊添加按鈕?我認爲這不是一個被模仿的問題,因爲它始終是相同的模型動作。 感謝
你可以做這樣的事情(我還沒有測試的代碼我自己):
HAML:
.model
%input{:name => "model[][name]"}
%input{:name => "model[][desc]"}
%input{:name => "model[][date]"}
.container
%button.add-model
JS:
$('.add-model').click(function(){
$('.model').clone().first().appendTo('.container');
})
控制器:
def save
params[:model].each do |props|
Model.create(props)
end
end
我做的是使用JavaScript(jQuery的) - 在頁面加載我省唯一的呈現形式到JS變量(其實不是形式,而是它裏面的輸入),然後在點擊「添加更多」鏈接在表單中追加更多輸入。
爲了一次保存很多對象,您需要手動輸入名稱(類似model[][name]
以發送值數組),以及接受數組的控制器。
嗯,也許我不會很好地理解你的問題,但是你究竟想要做什麼?你用js來附加表單嗎? –
是的,我想使用jQuery,因此我想管理陣列,用於創建同一型號 – davelab
所以,你可以根據需要使用jQuery的append添加儘可能多形式的控制器動作,他們不有什麼不同:只使用Khustochka的暗示'布特模型[] [名稱]的名稱。 –