我有一個數組@sources
,它包含源的名稱(字符串)。在視圖中,我想用遠程表單中的複選框列出每個源代碼。然後在鏈接的控制器動作中,我希望在params散列中有一個數組,只包含那些用戶在提交之前檢查過的數據源。如何使用form_tag和複選框從數組中選擇選項
我嘗試手動這樣做,就像這樣:
<%= form_tag select_sources_user_wordsearch_path(@user, @wordsearch), {method: :post, remote: true} do %>
<% @sources.each do |source| %>
<div class="form-group">
<div class="checkbox">
<label class="pull-left">
<input type="checkbox" class="pull-right"> <%=source%>
</label>
</div>
</div>
<% end %>
<div class="form-group">
<%= submit_tag "Start Search",id:"search_commit", class: "btn btn-primary" %>
</div>
<% end %>
但提交表單的時候,我甚至不看params散列,:
Started POST "https://stackoverflow.com/users/1/wordsearches/77/select_sources" for 127.0.0.1 at 2015-08-15 16:18:06 +0200
Processing by WordsearchesController#select_sources as JS
Parameters: {"utf8"=>"✓", "commit"=>"Start Search", "user_id"=>"1", "id"=>"77"}
所以我環顧四周,看form_tag
幫手和發生了什麼事情。在check_box_tag的API page(請參閱註釋)中,我發現可以將集合傳遞給它並在params散列中的數組中接收選擇的結果。基本上,我上面描述。
我想知道如何在一個遠程表單中使用數組(而不是集合)來完成form_tag
?
在form_tag
API page我找不到有關數據如何傳輸到控制器的任何信息。在check_box_tag中沒有提及如何處理集合。
誰能告訴我這是怎麼完成的「Rails的方式」? 它必須比我想象的容易..
謝謝,我會嘗試這些方法。 – Flip