0

我有一个当前从 mySQL DB 获取数据的应用程序。我有一个Person包含列的表:Name, Gender, Email,Hobby等等。

我想实现一个“类似分组”的功能,以便用户可以按特定列(例如Gender)分类到一个组中

我所拥有的是这样的: 在此处输入图像描述

我想要实现的是按性别和一个小+标志创建两个组男孩/女孩,以便我们可以扩展它并查看组中的人: 在此处输入图像描述

最好的方法是什么?更新:我的实现方式:

my_controller.rb:

def index
  @people = Person.find_by_sql(*some sql stuff*)
  @persons = @people.group_by { |t| t.gender }
end

然后在视图文件中

view.html.erb
<% @persons.sort.each do |gender, person_list| %>
  <h2><%= gender %></h2>
  <% for person in person_list %>
    *some code here*
  <% end %>
<% end %>
4

1 回答 1

1

您可以使用范围。在您的 Person 模型文件中,添加以下内容:

scope :boys, where(:gender => "Male")
scope :girls, where(:gender => "Female")

然后在您的控制器中,您可以为每个性别组创建变量。

@boys = Person.boys
@girls = Person.girls

最后在你的视图中遍历@boys 和@girls。

于 2012-08-21T18:12:29.517 回答