0

我完全承认这是用户缺乏经验,但这是我的问题

我有 2 个相关的模型

     class User < ActiveRecord::Base
  belongs_to :team


  class Team < ActiveRecord::Base
  has_many :users

我想要做的是显示与登录用户属于同一团队的所有用户。所以基本上从用户那里选择 team_id = my team_id

我不确定我是否可以/应该在控制器或视图中执行此操作,但我无法工作。

在我的控制器中,我有这个返回所有团队的所有用户

 @users = User

这是 SELECT users.* FROMusers

我也可以使用我的 current_user 方法返回当前用户的信息

 @users = current_user.team

这是 SELECT teams.* FROM teamsWHERE teamsid= 3

我不知道如何获取 team_id = current_user team_id 的所有用户的列表?

还想知道最好在控制器中还是在视图中尝试这个?

谢谢

4

1 回答 1

2

正如@apneadiving 所建议的,使用curent_user.team.users将返回用户列表。但我只是想建议您将这种行为包装在一个方法中。因此,例如,您可以在User模型中包含以下内容:

class User < ActiveRecord::Base

  belongs_to :team

  def coworkers
    team.users
  end
end

然后在你的控制器中你可以做

def an_action
  @coworkers = current_user.coworkers
end

最后,在您的视图中,您可以遍历此列表以显示它们

@coworkers.each do |coworker|
  ...
于 2013-01-06T23:51:09.053 回答