我正在视图中创建一个选择框:
<% contact = Contacts.all.map{|x| [x.name.to_s.capitalize] + [x.id]} %>
<%= select_tag("selectedContact", options_for_select(contacts)) %>
并在控制器中获取所选值,如下所示:
contact_id = params[:selectedContact]
现在在某些情况下我还需要匹配联系人姓名。有什么办法可以同时获得所选联系人的身份和姓名吗?
答案 0 :(得分:2)
使用,[{ x[:name] => x[:id]}]
<% contact = Contacts.all.map{|x| [x.name.to_s.capitalize] + [{ x[:name] => x[:id]}]} %>
在控制器中,
contact_name = params[:selectedContact].keys[0]
contact_id = params[:selectedContact][contact_name]
答案 1 :(得分:0)
感谢@Sravan,我通过在视图中将id与name连接,然后在控制器中将其拆分以获取id和name来实现。 在视图中:
<% contact = Contacts.all.map{|x| [x.name.to_s.capitalize] + [x.id.to_s+'_'+x.name.to_s]} %>
并在控制器中:
contact_id = params[:selectCPA].split('_')[0]
contact_name = params[:selectCPA].split('_')[1]