2017-08-02 6 views
1

私は、ユーザーが情報の一部を入力する必要があるWebサイトを構築しています。 1つの情報は大学の専攻科目です。私は彼らがそれを打ち込むことを望んでいない(私は打ち切ることができない理由がある)。だから私は、私はこれを行う3つのオプションのように持っている形で:何百ものオプションでドロップダウンを実装する方法は?

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

私も専攻のための上記の方法を行うことができますが、それはコードを乱雑になります。私が含める150以上のメジャーがあるので、私は私の意見のコードを乱雑にしないでこれを行うことができる簡単な方法はありますか?

答えて

3

最も簡単なアプローチは定数を使用することです。設定/初期化子でconstants.rbファイルを作成し、このような何かをそこに置く:

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

次に、ビューの選択呼び出しは次のようになります。

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

をあなたはまた、専攻のモデルにすることを検討することができ、すべてのフィールドをデータベースに格納します。また、そのリストからピックアップすることが問題になる可能性があります。typeahead gemを使用してユーザーをより簡単にすることを検討してください。

+1

答えをありがとう。私はおそらくconstants.rbメソッドと一緒に行くだろうと思う。 – LizzyTheLearner

+0

グローバル定数は決して良い考えではなく、constants.rbはこれを推奨するだろう。 MAJORS定数がStudentモデルなどに適合しなければならないというモデルがあるはずです。それをそこに入れなさい。 –

関連する問題