我試圖爲數組中的每個名稱創建單獨的記錄。這個數組通過一個控制器中的表單產生,並且單獨的記錄需要保存在一個連接(類型)表中(我知道mongo中沒有「連接」表,但它是描述它的最好方式)。目前使用Mongoid/MongoDB運行Rails 5。來自數組中名稱列表的多個對象
始發形式:
<%= form_tag create_multiple_batch_keg_index_path, method:
:create do |form|%>
<div class="field">
<table class="table table-hover table-condensed">
<thead>
<tr>
<th>Select All</th>
<th>Keg Name</th>
</tr>
</thead>
<tbody>
<% Keg.each do |batch_keg| %>
<tr>
<td><%= check_box_tag 'batch_keg_ids[]', batch_keg.id
-%> </td>
<td><%= batch_keg.name -%> </td>
</tr>
<% end %>
</tbody>
</table>
</div>
最初的控制器PARAMS:
def batch_params
params.require(:batch).permit(:batch_keg_attributes => [keg_id,
:active, :visible, :wholesale_inventory, :taproom_inventory,
:hold_inventory])
end
加入控制器
def create_multiple
batch_keg_ids(params).flatted.map{|ids|
BatchKeg.create(:wholesale_inventory => true, :taproom_inventory
=> true, :hold_inventory => false, :active => true, :visible =>
true)}redirect_to batches_url
end
路線
resources :batch_keg do
collection do
post :create_multiple
put :update_multiple
get :collection
end
end
我想我已經成功完成了大部分流程(我已經完成了幾個錯誤消息,但是我被卡住了)。我在遍尋網絡的各個地方搜尋,試圖尋找解決方案,但一直未能找到一個有效的解決方案。我要麼是A),關閉但不是完全在那裏,或者B)完全偏離過程。
它看起來像我得到的數據,我需要通過,但不清楚我需要如何使用它在加入控制器(我認爲),我已經在這上好幾個小時,我的大腦是糊塗的。我覺得我需要在連接控制器中創建一個變量來保存數據,這就是我在這裏所做的。預先感謝對此代碼的任何建議,或者更有效的方式來執行此操作。
好了,你要創建一個'BatchKeg'每個'Keg'在窗體中選擇?看起來你在「連接」控制器中這樣做了,但是你並沒有將'keg_id'保存在'BatchKeg'創建調用中。我不確定問題是什麼。請儘量清理您發佈的代碼,因爲這似乎存在一些錯別字。 –
感謝您回覆瑞恩!你是對的。我試圖將每個keg_id保存在BatchKeg中。我確實需要用戶ID,但很難獲得它,所以我刪除它試圖嘗試打開線路並從那裏開始工作。我以爲我添加了一個錯誤信息的屏幕截圖到最初的帖子,我只是添加它作爲參考。 – kchucke