2017-11-16 39 views
0

私は、UserとRecruiterという2つのモデルを持っています。私がしたいのは、ユーザーを検索して結果を返すスコープを作成して、採用担当者がそれらを見ることができるようにすることです。しかし、私はどのように協会を設立するかについては分かりません。私はユーザーとリクルーターとの間の関連付けを行い、recruiter_usersという新しい結合テーブルを作成しましたが、これが正しい方法であるかどうかはわかりません。Rails:モデルの関連付け

1)2つのモデル間の関連付けを行う最良の方法 2)ユーザーの結果をリクルートビューにどのくらい正確に表示できますか?再び

class RecruiterUser < ApplicationRecord 

    # this is a join model between recruiters and users 
    belongs_to :recruiter 
    belongs_to :user 




class User < ApplicationRecord 

    # creates association with recruiters model through the join table recruiter_users 
    has_many :recruiter_users 
    has_many :recruiters, through: :recruiter_users 



class Recruiter < ApplicationRecord 

    # creates association with users model through the join table recruiter_users 
    has_many :recruiter_users  
    has_many :users, through: :recruiter_users 
+0

あなたが何をしようとしての詳細を知らなくても、あなたはここに示されている団体は完全に有効です。あなたが望むようにあなたのために働いていないものがありますか? – jeffdill2

+0

リクルートビューにユーザーの結果を表示するにはどうすればよいですか? – Scott

答えて

0

、ビュー内の特定のRecruiterに関連したUser秒を表示するだけですが、それはこのような単純なものができれば、あなたのアプリケーションの詳細を有しない:

<% @recruiter.users.each do |user| %> 
    <%= user.whatever_attribute %> 
<% end %> 
0

あなたは多くの協会へのミルのあなたの平均実行は、多くのしたいようですね:

class User 
    has_many :recruitments 
    has_many :recruiters, 
    through: :recruitments 
end 

class Recruiter 
    has_many :recruitments 
    has_many :recruited_users, 
    through: :recruitments, 
    source: :user 
end 

class Recruitment 
    belongs_to :user 
    belongs_to :recruiter 
end 

あなたが参加するモデル+ bを名前を付ける必要はありません。関係が何を使用しているかをよりわかりやすい名前があれば。

これはあなたがでリクルーターによってリクルートのユーザーを反復処理聞かせ:

@recruiter = Recruiter.includes(:recruited_users).find(params[:id]) 

<% @recruiter.recruited_users.each do |user| %> 
    # ... 
<% end %> 
関連する問題