如何实现具有数百个选项的下拉列表?



我正在建立一个网站,用户必须输入他们的一些信息。一条信息是他们的大学专业。我不希望他们不打出来(我有一个很好的理由为什么不能打出来(。所以在表格中,当我有三个选项时,我会这样做:

<%= f.input :option, collection: ["option 1", "option 2", "option 3"], required: true, label: 'Options' %>

我也可以为专业做上述方法,但它会使代码混乱。既然我想包括 150 多个专业,有没有一种不同的简单方法可以做到这一点,而不会弄乱我的观点的代码?

最简单的方法是使用常量。在配置/初始值设定项中创建constants.rb文件,并放置如下内容:

MAJORS = ["option 1",
"option 2"]

然后,选择视图中的呼叫将如下所示:

<%= f.input :option, collection: MAJORS, required: true, label: 'Options' %>

您也可以考虑将 MAJORS 设置为模型,并将所有字段存储在数据库中。此外,从该列表中选取可能是一个问题,请考虑使用预先键入 gem 以使用户更容易使用。

最新更新