我有行爲像通過空間多維數組,像一個數組:如何解析多維數組中的值,並根據條件選擇另一個?
「角色」=> [ 「1主編0」, 「1個主編1」, 「2編輯器0」, 「2編輯器1」 ,「14編輯0」,「15編輯0」],「提交」=>「授予訪問」,「ID」=>「3」}
每個數組值代表[category_id,user.title,checked_boolean]和來自
form
<%= hidden_field_tag "roles[]", [c.id, "editor", 0] %>
<%= check_box_tag "roles[]", [c.id, "editor", 1 ], !!checked %>
我處理它使用拆分
params[:roles].each do |role|
cat_id = role[0].split(" ")[0]
title = role.split(" ")[1]
checked_boolean = role.split(" ")[2]
end
給出頂部的數組,您可以看到「Category 1」&「Category 2」被選中,而「Cat 14」和「Cat 15」沒有被選中。
我想比較給定數組的值,並且如果對於給定的category_id都存在,我想擺脫「checked_boolean = 0」的值。這樣,如果布爾值爲1,我可以檢查角色是否已經存在,如果沒有,則創建它。如果它是0,我可以檢查角色是否存在,如果存在,請刪除它。
我怎麼能做到這一點?我想像params [:roles] .uniq那樣做,但不知道如何僅在第一次拆分時處理uniq。
或者有沒有更好的方式發佈Rails中的「unchecks」?我發現了處理簡單複選框的取消選中操作的解決方案,可以輸入true/false,但是我的情況不同,因爲除了User之外,還需要傳遞true/false。標題:
到parsedata使用下表:'(CAT_ID,標題,checked_boolean)= role.split「「' –
我怎麼能檢查是否有重複的cat_ids ,並刪除「checked_boolean == false」的那個? – kibaekr