阵列红宝石在轨道上

问题描述:

当在页面的左侧执行商店搜索和分页结果(每页10个)时,我需要显示在所有商店中工作的员工列表(无重复项)当前显示。阵列红宝石在轨道上

在我有以下的,但它不觉得自己是最有效的视图,它显示了重复的员工

- @shops.each do |shop| 
- shop.employees.each do |employee| 
%li = link_to "#{employee.name}", employee_path(employee) 

@shops.map(&:employees).flatten.uniq.each do |employee| 
    %li = link_to "#{employee.name}", employee_path(employee) 
end
+0

谢谢!还有一个问题,我如何按员工姓名的字母顺序排列? – noddy 2010-11-09 09:08:39

+1

只是用'uniq.sort_by(&:name)替换'uniq.' .' – DNNX 2010-11-09 09:10:45

uniq

- @shops.each do |shop| 
- shop.employees.uniq.each do |employee| 
%li = link_to "#{employee.name}", employee_path(employee) 

这种类型的查询应在DB,而不是在内存中完成。

class Shop 
    has_many :employees 
end 

class Employee 
    belongs_to :shop 
end 

检索的商店给定集合员工在你的控制器:

@employees = Employee.all_by_shop_id(@shops, :order => :name) 
在你看来

现在:

[email protected] do |employee| 
    %li = link_to "#{employee.name}", employee_path(employee)