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。*FROMです。users

現在のユーザーに関する情報を返すcurrent_userメソッドを使用することもできます

 @users = current_user.team

これはSELECT teams。* teamsFROMWHEREteamsです。id= 3

team_id = current_user team_idであるすべてのユーザーのリストを取得する方法がわかりませんか?

また、これをコントローラーで試すのが最善か、ビューで試すのが最善かを知りたいですか?

ありがとう

4

1 に答える 1

2

@apneadivingによって提案されているように、usingcurent_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 に答える