0
我允許用戶組聯繫人一起使用複選框,在新的編輯形式:保存複選框值數據庫
<% current_user.contacts.all.each do |contact| %>
<% checked = @group.contacts.include?(contact) %>
<%= check_box_tag "contacts[]", contact.id, checked %>
<%= f.label contact.name %>
<% end %>
直到最近,我才得以在使用下面的代碼創建操作創建一個組:
def create
@group = current_user.groups.new(group_params)
@contacts = Contact.find(params[:contacts])
@group.contacts << @contacts
if @group.save
......
end
爲確保在更新操作期間已將已檢查的值不添加到組中,我在表單中使用了隱藏標籤。
<%= hidden_field_tag "contacts[]",'' %>
<% current_user.contacts.all.each do |contact| %>
<% checked = @group.contacts.include?(contact) %>
<%= check_box_tag "contacts[]", contact.id, checked %>
<%= f.label contact.name %>
<% end %>
現在,我無法創建或更新組,因爲hidden_field值也會傳遞。未找到活動記錄:找不到所有具有'id'的聯繫人:(,3,4)(找到2個結果,但正在查找3)錯誤。我該如何解決這個問題?
你想要的'hidden_field_tag'在你的循環之上。你正在運行哪個版本的導軌? – 2014-10-08 13:21:21
以及如果您希望現在有多個ID,您可以執行'Contact.find_all_by_id(params [:contacts])' – Nithin 2014-10-08 14:08:31
@japed抱歉,我犯了一個錯誤。 hidden_field已經在循環之上。編輯代碼以反映這一點。並且,我正在使用Rails 4.1 – user3224820 2014-10-08 14:14:05