Como implementar um modelo de amizade no Rails 3 para um aplicativo de rede social?

Atualmente, estou trabalhando em um pequeno aplicativo de rede social e agora estou tentando criar um modelo que represente amizades entreComercia. Isto é o que eu vim até agora:

class User < ActiveRecord::Base

  # ...
  has_many :friendships
  has_many :friends, :through => :friendships

end

class Friendship < ActiveRecord::Base
  belongs_to :user
  belongs_to :friend, :class_name => 'User'
end

Minhasamizad modelo tem um campoconfirmad como booleano que eu gostaria de usar para definir uma amizade como pendente ou confirmad

Como posso acessar todas as solicitações pendentes de um determinado usuário? De alguma forma, posso definir isso usando o @ Rails escop método? Algo com

current_user.friendships.requests # => [Friendship, Friendship, ...]

seria ótimo

Como posso tornar essa associação bidirecional? Simplesmente adiciono outra amizade assim que alguém confirmar um pedido de amizade, de modo que minha tabela de amizade seja semelhante a esta:

| user_id | friend_id | confirmed |
-----------------------------------
| 1       | 2         | true      |
| 2       | 1         | true      |

questionAnswers(5)

yourAnswerToTheQuestion