On 29 Jun 2007, at 03:49, TeeC wrote:
>
> I''m trying to add the ability to add other users of my app as
friends
> (to follow their recent activity, etc.), however I can''t grasp
what
> ActiveRecord association should be used. Basically, I''ve tried to
do
> this:
>
> class User < ActiveRecord::Base
> has_one :user_picture
> has_many :scores
> has_many :friendships
> end
>
> class Friendship < ActiveRecord::Base
> belongs_to :user
> end
>
> And my friendships table looks like this:
> create_table :friendships, :force => true do |t|
> t.column "user_id", :integer, :null => false
> t.column "friend_id", :integer, :null => false
> end
>
> User_id holds the ID of the user that added another user as friend,
> and friend_id is the ID of the user that was added as a friend (sorry
> if this sentence didn''t make much sense).
>
> All I need to do is track who is friends of who, and see if their
> friendship is mutual. If I keep working on it, the code above can
> probably work, but it doesn''t seem to Railsy. So if you can,
please
> let me know how you would pull this sort of thing off.
>
> Thanks for taking a look,
> Tony
>
>
I''m no guru on Railsyness, but I wonder if the tables you describe
are capturing all of what''s happening in your relationships. Your
last paragraph implies that friendship is mutual -- and thus exists
only when both requested and accepted, requiring two steps to create.
As I read this, the friendships table holds both requests and
accepted friendships. Separating them might make this easier and more
transparent to manage...
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---