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 |