Rails 3で小さなコミュニティをコーディングしています。プロファイルと連絡先という2つのテーブルがあります。ユーザーが別のユーザーと友だちを追加すると、2つの列を保持するContactsという表に保存されます。 profile_idおよびfriend_id。Rails 3で外部キー検索が失敗する
PROFILE_ID:ユーザーIDは Friend_idに保存されているところである:これは、別のユーザーが、私はそれが家庭のユーザーに表示したい友人としてユーザーを追加した場合、他のユーザーのIDが
を保存する場所です他のユーザーも追加することができますが、ユーザーが既に他のユーザーを友達として持っていない場合にのみ表示します。私は以下のコードを試しましたが、私が望むように動作していないようです。
@connections = Contact.where(["friend_id = ?", params[:profile_id]])
@notfriends = @connections.find_all {|profile| Contact.where(["profile_id = ? AND friend_id = ?", profile.friend_id, params[:profile_id]])}
何が間違っていますか?これは正しい構文ですか?
UPDATE
だから私は達成するために探していますは、次のとおりです。
- ユーザーが友人(friend_id)として設定されているすべての連絡先を取得します。
- それから私は、ユーザーが既に友人(PROFILE_ID)として持っていない上記のクエリから連絡先を取得したいと思います。
モデル '連絡先'と 'プロフィール'で適切な関連付けを使用しましたか? (http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html) – Patrick
はい私はこう考えています。連絡先では「belongs_to:profile」を使用し、プロフィールでは「has_many:contacts」を使用します。これは正しいです? –