Rails的多个选项中选择只发送一个
问题描述:
我有这样的形式:Rails的多个选项中选择只发送一个
<form accept-charset="UTF-8" action="/contracts/<%= params[:id] %>/addConsultants" method="POST" id="updateConsultants"><!---->
<div style="margin:0;padding:0;display:inline">
<input name="utf8" type="hidden" value="✓">
<input name="authenticity_token" type="hidden" value="<%= session[:_csrf_token] %>">
</div>
<div class="consultant_selector">
<h2>Consultants</h2>
<select name="consultants_available" size="10" multiple>
<% @users.each do |u| %>
<option value="<%= u[:id_user] %>"><%= u[:name] %></option>
<% end %>
</select>
<ul>
<li class="triangle_right" id="add_consultant"></li>
<li class="triangle_left" id="remove_consultant"></li>
</ul>
<select name="consultants_selected" size="10" multiple>
</select>
</div>
<div>
<input type="submit" value="Mettre à jour" />
</div>
</form>
而且在我的控制器:
def add_consultants
@contract = Contract.find(params[:id])
@consultants = params[:consultants_selected];
puts "------ Consultants: #{@consultants}"
redirect_to contract_path
end
的想法是,我可以在第一选择中选择姓名,移动它们点击三角形,然后提交表单以将这些名称分配给合同。但是,当我这样做时,对puts
的呼叫仅在第二次选择的3个中打印出一个ID(其中三个具有selected
属性至true
)。我如何获得多个值?
答
就在这里找到了答案:https://*.com/a/2196522/1796742
改变第二名称选择:
<select name="consultants_selected" size="10" multiple>
</select>
要:
<select name="consultants_selected[]" size="10" multiple>
</select>
合作。
谢谢。这是正确的提示! –