我有一個人模型和一個報價模型。每個人都可以有許多與他們相關的引用,而這些引用又有與作者,文本,Url相關的內容。在實踐中,實際上只有一個人有報價對象,但所有人都可能有一個。批量更新使用導軌中的對象的對象
我正試圖在報價上使用一個簡單的散裝適度工具。如在中,用戶可以輸入引號和管理員可以去並且具有特定人員的所有引號(但是實際上,只有一個人會擁有他們)並且檢查將布爾批准設置爲0或1的框。當引號實際上被顯示,它們被該字段過濾。
我越來越混淆,試圖創建一個表單,批量更新這些。我得到的形式顯示所有的人都像這樣:
<% form_for :quotes, :html => { :method => :put }, :url => {:controller => "quote", :action => "bulk_update", } do |quote_form| %>
<% @person.quotes.each do |quote| %>
<p>
<% fields_for "quotes[id][]", quote do |fields| %>
Text....
<%= fields.check_box :approved %><br><br>
<% end %>
</p>
<% end %>
<%= submit_tag 'Update' %>
<% end %>
我只是在我的批量更新控制器一個令人難以置信的通用的東西基本上是像一個正常的更新控制器。我不知道該放什麼。我可以嘗試把所有我可能應該引用的引號,但是我不知道怎麼去那個變量,因爲我在Person視圖等等中做了所有這些。控制器是這樣的:類似於:
def bulk_update
@quote = Quote.find(params[:id])
end
我想我對於應該在那裏的ID和應該通過什麼的ID感到困惑。應該把個人ID作爲這個的一部分嗎?就像我所說的,我並不在意技術上所有引號是否顯示在該頁面上,他們不需要按用戶排序。
我得到看起來像這樣的參數:
「引號」=> { 「ID」=> { 「6」=> { 「批准」=> 「0」},..
但它抱怨沒有ID沒有找到報價。我不關心ID,因爲我想批量更新所有這些ID。看起來這個特定的結構會映射幾個ID,但也許(可能)我必須改變我的控制器來彌補這一點,但不知道如何。當我嘗試刪除哈希引號時,它也不起作用,只是將「id」=> {「6」=> {「approved」=>「0」}作爲我的參數。
編輯:我發現了一個名爲update_all聲明,但我不知道該如何選擇地通過它我需要什麼...
我得到一個零對象當我嘗試像這樣運行它時引號。另外,我的參數散列應該是什麼樣子?什麼變化: 「quotes」=> {「id」=> {「6」=> {「approved」=>「0」},.. – 2009-10-02 19:05:01
更新以匹配您的結構,但如果沒有,請提交2個引號並將結果結構粘貼到params散列表中。 – khelll 2009-10-02 20:27:11
我認爲你應該重寫person.update並在那裏做,這個東西在控制器中沒有業務。 – nasmorn 2009-10-02 20:32:20