0

ユーザーテーブル(およびユーザーモデル)があります。私のシナリオでは、ユーザーは複数の ID を持つことができます。つまり、ユーザー michael1 (id = 1) は michael2 (id = 2) および michael3 (id = 3) に接続できます。

これらの接続を格納するテーブルを作成しました。これを user_relations と呼び、id、user_id、related_user_id 列があります。前の例では、次のようになります。

ユーザー ID | related_user_id

1 | 2

1 | 3

users モデルでは、has_many :user_relations を定義し、user_relation では、begins_to :users を定義しました。

今、私はユーザーオブジェクトを持っているときに取得できるようにしたい:

current_user.user_relations - テーブルに従って接続されているすべてのユーザー オブジェクトを取得します。前の例では、ID 1 のユーザーとして current_user がいる場合、ID 2 と 3 のユーザーを取得したいと考えています。

どうすればそれを達成できますか?

ところで - ID がないと、destroy_all を使用できないことがわかったので、ID を持っています。誰かがこれについても洞察を持っているなら、私は聞くことにオープンです.

4

1 に答える 1

1

これはうまくいくはずだと思います。何か見逃した場合は、ここで詳細を確認できます。

class User < ActiveRecord::Base
  has_many :user_relations
  has_many :related_users, :through=> :user_relations
end

class UserRelations< ActiveRecord::Base
  belongs_to :user, :class_name => "User", :foreign_key => "user_id"
  belongs_to :related_user, :class_name => "User", :foreign_key => "related_user_id"
end
于 2013-05-01T20:05:43.273 に答える