我發現 collection check boxes的文檔很難理解。這些參數的解釋是:collection_check_boxes在Rails從表格中獲取結果
collection_check_boxes(object, method, collection, value_method, text_method, options = {}, html_options = {}, &block) public
返回複選框標籤法的現有返回值的集合對象的類。將從實例對象的調用方法返回的值將被選中。如果調用方法返回nil,則不進行選擇。
我不確定的是「對象」(第一個參數)應該是什麼。我嘗試了兩種不同的可能性,並得到不同的失敗。
<%= collection_check_boxes(:wiki, :collaborating_user_ids, User.all, :id, :name) do |b| %>
<li>
<%= b.check_box %>
<%= b.label %>
</li>
<% end %>
這個想法是,我的應用程序支持編輯維基。我希望wiki所有者能夠使用複選框從協作者列表中添加和刪除用戶(這當然只有在少數用戶的情況下才是實用的)。 collaborating_user_ids
是返回當前協作者列表的Wiki
的實例方法。我想顯示所有用戶的名稱,並選中當前的協作者。
這適用於顯示,但是當我檢查此表單返回的params
時,沒有任何內容顯示檢查了哪些複選框。另一方面,如果我用實例變量@wiki
替換符號:wiki
,則複選框將顯示在與Wiki關聯的params
中,但最初複選框的設置不正確。
我實際上並不知道collection_check_boxes
的第一個參數應該是什麼,但我看過的每個示例都顯示了一個符號。