我有一个当前从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 %>
答案 0 :(得分:1)
您可以使用范围。在Person模型文件中,添加以下内容:
scope :boys, where(:gender => "Male")
scope :girls, where(:gender => "Female")
然后在您的控制器中,您可以为每个性别组创建变量。
@boys = Person.boys
@girls = Person.girls
最后在你的视图中迭代@boys和@girls。