[英]checkboxs in a table created via form_for
我是RoR的新手,所以如果答案很簡單,我深表歉意。 我正在嘗試創建一個表,該表允許用戶選擇可以在Wiki上進行協作的其他用戶。 我遇到的問題是,無論您在表上選擇哪個復選框。 它僅切換最上方的選項。
這是有問題的代碼:
<%= form_for [@wiki, @wiki.collaborators.build] do |f| %>
<table class="bordered hoverable">
<tbody>
<% @users.each do |user| %>
<tr>
<td><%= user.name %></td>
<td class="right-align"><%= f.check_box :user_id %><%= f.label :user_id, "Give Access" %></td>
</tr>
<% end %>
</tbody>
</table><br /><br />
新的控制器值
def new
@wiki = Wiki.find(params[:wiki_id])
@collaborator = Collaborator.new
@users = (User.all - [current_user])
end
這里的問題是,通過check_box
不能選擇多個用戶。 為了選擇多個數據,您需要使用f.collection_select
。
這是如何做:
<%= f.collection_select :user_id, @users, :id, :name, {prompt: "Please select collaborators"}, {multiple: true} %>
要選擇多個,復選框的名稱不應為:user
而應包含用戶ID。 嘗試這樣的事情:
<%= form_for [@wiki, @wiki.collaborators.build] do |f| %>
<%= f.fields_for :collaborators do |c| %>
<table class="bordered hoverable">
<tbody>
<% @users.each do |user| %>
<tr>
<td><%= user.name %></td>
<td class="right-align"><%= c.check_box user.id %><%= f.label user.id, "Give Access" %></td>
</tr>
<% end %>
</tbody>
</table><br /><br />
<% end %>
<% end %>
然后,控制器將收到如下所示的參數:
{:collaborators => {1 => '0', 2 => '1'}
顯示未檢查ID為1的用戶,檢查了ID為2的用戶
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.