0

Ruby on Rails を使用してデータベースを作成しています。テーブルの 1 つのフォームにドロップダウン メニューを追加しました。ドロップダウン メニューは、別のテーブルからの外部キーです。そのドロップダウンメニューをアルファベット順に配置する方法を見つけようとしています。

これがform.htmlの私のコードです。

<div class="field">
  <%= f.label :founder_id %><br />
  <%= f.select(:founder_id, @founders.map{|founder| [founder.founder_name, founder.id]}) %>
</div>

これをフォームにアルファベット順に表示するために変更できるものはありますか? どんなヒントも素晴らしいでしょう。ありがとう!

4

2 に答える 2

0
@founders.map{|founder| [founder.founder_name, founder.id]}.sort{|a,b| a.founder_name.downcase <=> b.founder_name.downcase}

これで問題が解決します。

于 2013-07-05T05:38:18.033 に答える
0

はい、並べ替えを追加するだけです。

@founders.sort_by(&:founder_name).map{|founder| [founder.founder_name, founder.id]}

また

@founders.map{|founder| [founder.founder_name, founder.id]}.sort_by(&:first)

f.selectオプションは、取得した順序で表示されます。大文字と小文字を区別しない並べ替えは、演習として残されています。

于 2013-07-05T04:36:18.147 に答える