0

メッセージ ボードの Web サイトでページを作成し、すべてのフォーラム内でアルファベット順に配置したいと考えています。ウィキペディアのようなものです。

動的である必要があります (フォーラムは時々作成または削除できます)。
どうやってそれをしますか?

4

2 に答える 2

2

ここにコントローラーがあります:

@grouped = {}
Forum.all.each do |forum|
  # take and capitalize first character from name
  letter = forum.name.slice(0,1).upcase
  @grouped[letter] ||= [] 
  @grouped[letter] << forum
end

これがあなたの見解です:

<ul>
  <% @grouped.keys.sort.each do |letter| %>
    <li>
      <h2><%= letter %></h2>
      <ul>
        <% @grouped[letter].each do |forum| %>
          <li><%= forum.name %></li>
        <% end %>
      </ul>
    </li>
  <% end %>
</ul>

ソース

于 2013-06-01T15:50:33.857 に答える
0

これがお役に立てば幸いです:

1.9.3p362 :002 > ["foo", "bar", "baz", "fuzz", "debian"].group_by {|x| x[0] }
=> {"f"=>["foo", "fuzz"], "b"=>["bar", "baz"], "d"=>["debian"]}
于 2013-06-01T15:45:06.827 に答える