diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index c36ebc0b31b8c88266e0255932fe90f3196b1554..18e1280df338b6e13133da6f982b12df40d7f1f7 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -20,7 +20,7 @@ class ApplicationController < ActionController::Base @groups = current_user.groups @friends = current_user.friends @latest_status_message = StatusMessage.newest_for(current_user) - @group = params[:group] ? Group.first(:id => params[:group]) : Group.first + @group = params[:group] ? current_user.groups.first(:id => params[:group]) : current_user.groups.first end end diff --git a/app/models/group.rb b/app/models/group.rb index 885e471ccd4101549ce24d7ddd2e021ed1ae4cef..5c228448dcd26e02260f898136384adb65d50640 100644 --- a/app/models/group.rb +++ b/app/models/group.rb @@ -3,7 +3,9 @@ class Group key :name, String - many :people, :class_name => 'Person' + key :person_ids, Array + + many :people, :in => :person_ids, :class_name => 'Person' belongs_to :user, :class_name => 'User' timestamps! diff --git a/db/seeds/tom.rb b/db/seeds/tom.rb index 17b9375ca9cf4a41b30ff1ca92a00d3ef16b4cba..c716ad8fab17f5a70450932af1084db4ca12231d 100644 --- a/db/seeds/tom.rb +++ b/db/seeds/tom.rb @@ -24,4 +24,15 @@ user2 = User.create( :email => "korth@tom.joindiaspora.com", :url => "http://tom.joindiaspora.com/", :profile => Profile.new( :first_name => "Evan", :last_name => "Korth"))) + user2.person.save + +# friending users +user.friends << user2.person +user.group(:name => "other dudes", :people => [user2.person]) +user.save + +user2.friends << user.person +user2.group(:name => "some dudes", :people => [user.person]) +user2.save + diff --git a/spec/models/group_spec.rb b/spec/models/group_spec.rb index a40a9be118318c8781570e04dd665cde30f3d31d..1d0f400d5f9541231681aab49ad1f67f529853c4 100644 --- a/spec/models/group_spec.rb +++ b/spec/models/group_spec.rb @@ -4,6 +4,8 @@ describe Group do before do @user = Factory.create(:user) @friend = Factory.create(:person) + @user2 = Factory.create(:user) + @friend_2 = Factory.create(:person) end describe 'creation' do @@ -11,6 +13,27 @@ describe Group do group = @user.group(:name => 'losers') group.name.should == "losers" end + + it 'should be able to have people' do + group = @user.group(:name => 'losers', :people => [@friend, @friend_2]) + group.people.size.should == 2 + end + + it 'should be able to have other users' do + group = @user.group(:name => 'losers', :people => [@user2.person]) + group.people.include?(@user.person).should be false + group.people.include?(@user2.person).should be true + group.people.size.should == 1 + end + + it 'should be able to have users and people' do + group = @user.group(:name => 'losers', :people => [@user2.person, @friend_2]) + group.people.include?(@user.person).should be false + group.people.include?(@user2.person).should be true + group.people.include?(@friend_2).should be true + group.people.size.should == 2 + end + end describe 'querying' do