将集合旁边的固定值传递给rails中的options_for_select

时间:2016-02-26 12:07:57

标签: ruby-on-rails html-select

我试图将固定值和循环值传递给我的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"]] }) %>

输出: enter image description here

显然[“plaze”,31]并不好!

1 个答案:

答案 0 :(得分:1)

你真的需要添加多个项目吗?或者只是“所有酒店”的例子就足够了。因为在这种情况下你可以这样做:

<%= select_tag "", options_for_select(...), { include_blank: "all hotels" } %>