首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ruby on Rails:下拉菜单选项

Ruby on Rails:下拉菜单选项
EN

Stack Overflow用户
提问于 2012-10-01 18:47:37
回答 2查看 354关注 0票数 0

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

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

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

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-01 18:50:24

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

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2012-10-01 19:57:09

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

代码语言:javascript
复制
db_techs = Project.select("projects.tech").uniq.map {|p| [p.tech]}

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

此外,您不希望basic_techs在列表中出现两次,因此

代码语言:javascript
复制
all_techs = basic_techs + db_techs
all_techs.uniq!
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12671815

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档