如何使用数百个选项实现下拉列表?

时间:2017-08-02 11:14:27

标签: ruby-on-rails

我正在建立一个网站,用户必须输入他们的一些信息。其中一条信息是他们的大学专业。我不希望他们输入它(我有充分的理由说明它无法输入)。所以在表单中,当我有三个选项时,我会这样做:

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

我也可以为专业做上述方法,但它会使代码混乱。由于我想要包含超过150个专业,我是否有不同的简单方法可以做到这一点而不会使我的观点的代码混乱?

1 个答案:

答案 0 :(得分:3)

最简单的方法是使用常量。在config / initializers中创建constants.rb文件,并放置如下:

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

然后,在视图中选择调用将如下所示:

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

您也可以考虑将MAJORS设为模型,并将所有字段存储在数据库中。此外,从该列表中选择可能是一个问题,请考虑使用typeahead gem来让用户更轻松。