我如何删除红宝石中的欺骗

Mat*_*iby 0 ruby loops ruby-on-rails

我在rails中有这个循环

 - @companies.people.each do |person|
  %p
    Hello there :
    = "#{person.manager.name} (#{person.manager.email})"
Run Code Online (Sandbox Code Playgroud)

但我只想打印经理名字一次.....但很多人都有同样的经理,他们正在打印欺骗......任何想法如何不在这里打印欺骗

Mar*_*mas 5

你不愿意这样做:

@companies.managers do |manager|
...
Run Code Online (Sandbox Code Playgroud)

所以你需要用方法修改底层模型(公司?)managers.无论是通过范围,模型关系还是alfonso的强力回答,我们都没有足够的信息来确定.但无论如何,这种逻辑最好隐藏在模型中,而不是在视图中暴露出来.