我试图将固定值和循环值传递给我的select_tag。我可以完美地写出类似的内容:
<%= select_tag "", options_for_select(session[:user_hotel_list].collect{ |hotel| [hotel["name"], hotel["id"]] }) %>
此处hotel["name"]
将显示该值,hotel["id"]
为该字段的“实际值”。
但是如果我尝试在我的options_for_select中添加额外的固定值,我就得不到所需的输出。假设我想添加一个带有“all”的“所有酒店”的选择。我会尝试这样的事情:
<%= select_tag "", options_for_select([["all hotels", "all"], session[:user_hotel_list].collect{ |hotel| [hotel["name"], hotel["id"]] }]) %>
但是在这里我会得到一个数组作为集合的输出......
如何使用rails中的集合正确地将额外的固定数据添加到options_for_select?
编辑
例如这段代码:
<%= select_tag "dash_select", options_for_select( [["all hotels", "all"], ["other", "value"]] << session[:user_hotel_list].collect{ |hotel| [hotel["name"], hotel["id"]] }) %>
显然[“plaze”,31]并不好!
答案 0 :(得分:1)
你真的需要添加多个项目吗?或者只是“所有酒店”的例子就足够了。因为在这种情况下你可以这样做:
<%= select_tag "", options_for_select(...), { include_blank: "all hotels" } %>