Ruby on Rails:下拉菜单选项

时间:2012-10-01 10:47:37

标签: ruby-on-rails ruby database drop-down-menu

我有一个应用程序,用户可以从下拉菜单中选择技术。我想在最常见的选项中编码,以及在数据库中显示技术。

是否可以在一个下拉菜单中预设选项以及技术栏中的选项?像这样的东西?

<%= f.select( :tech, [['Tech1'],['Tech2'],['Tech3'], ['Tech4'],  Project.all.map {|p| [p.tech]}.uniq], :prompt => "Select a previous Technology") %>

由于

2 个答案:

答案 0 :(得分:1)

您可以简单地添加数组来连接它们:

basic_techs = [['Tech1'],['Tech2'],['Tech3'], ['Tech4']]
db_techs = Project.all.map {|p| [p.tech]}.uniq
<%= f.select( :tech, basic_techs + db_techs, :prompt => "Select a previous Technology") %>

答案 1 :(得分:1)

选择所有Project项目,仅为了获取tech列而构建它们是非常过分的。

db_techs = Project.select("projects.tech").uniq.map {|p| [p.tech]}

(这将生成SELECT DISTINCT projects.tech查询,而不是SELECT * FROM projects

此外,您不希望basic_techs在列表中显示两次,所以

all_techs = basic_techs + db_techs
all_techs.uniq!