ユーザーがメールアドレスで自分の友達を検索できるようにしようとしています。私は次のようなことをしたいと思います:
current_user.search('test@fake.com')
その電子メール アドレスを持つ現在のユーザーの友人の配列を返すようにします。
だから私は私のユーザーモデルに設定された非常に基本的な友情関係を持っています
user.rb
has_many :friendships
has_many :friends, through: :friendships, source: :friend
has_many :inverse_friendships, class_name: 'Friendship', foreign_key: 'friend_id'
has_many :inverse_friends, through: :inverse_friendships, source: :user
friendship.rb
belongs_to :friend, class_name: 'User', foreign_key: 'friend_id'
belongs_to :user
メールアドレスで友達を検索できるメソッドをユーザーモデルに設定したいと考えています。うまくいかない
def search(query)
conditions = ['friends.user_id = ? AND email LIKE ? ', self.id, "%#{query}%"]
User.includes(:friends).where(conditions)
end
自己参照モデルの関係を検索しようとしているので、ここでアクティブ レコード クエリ/SQL をフォーマットする方法がわからないだけだと思います。アイデアはありますか?
ありがとう!