我目前有以下代码:

- @alpha = Glossary.find(:all, :order =>"title ASC").group_by{|u| u.title[0]}
- @glossary = Glossary.find(:all, :order =>"title ASC")

- @alpha.each do|a|

  %h1= a[0]

  - @glossary.each do |g|
    %p display stuff


这将显示每个字母下的所有词汇表术语,而不是仅显示以字母开头的术语表。.我已经尝试了一些方法,但不确定如何选择正确的方法。

最佳答案

由于您正在使用@alpha,因此您应该可以使用group_by实例变量执行所有操作:

- @alpha = Glossary.find(:all, :order =>"title ASC").group_by{|u| u.title[0]}

- @alpha.each do |alpha, glossary_array|
  %h1= alpha
  - glossary_array.each do |item|
    %p= item

08-25 15:08