Push to multiple groups

This commit is contained in:
Raphael 2010-08-23 14:45:13 -07:00
parent 5a02f92448
commit 76f2aa98ac
4 changed files with 12 additions and 14 deletions

View file

@ -9,7 +9,7 @@ class StatusMessagesController < ApplicationController
end
def create
puts params.inspect
params[:status_message][:group_ids] = params[:group_ids]
@status_message = current_user.post(:status_message, params[:status_message])
if @status_message.created_at

View file

@ -42,8 +42,8 @@ class User
def post(class_name, options = {})
options[:person] = self.person
group_id = options[:group_id]
options.delete(:group_id)
group_ids = options[:group_ids]
options.delete(:group_ids)
model_class = class_name.to_s.camelize.constantize
@ -52,14 +52,15 @@ class User
post.save
if group_id
group = self.groups.find_by_id(group_id)
groups = self.groups.find_all_by_id(group_ids)
target_people = []
groups.each{ |group|
group.posts << post
group.save
post.push_to( group.people.all )
else
post.push_to( self.friends.all )
end
target_people = target_people | group.people
}
post.push_to( target_people )
post.socket_to_uid(id) if post.respond_to?(:socket_to_uid)

View file

@ -3,9 +3,6 @@
= form_for StatusMessage.new, :remote => true do |f|
= f.error_messages
-if group_id
= f.hidden_field :group_id, :value => group_id
.span-15.last
.span-2.last
.user_image
@ -21,7 +18,7 @@
going to...
- for group in current_user.groups
%li
= check_box_tag("groups_id[]", group.id, current_group?(group))
= check_box_tag("group_ids[]", group.id, current_group?(group))
= group.name
.span-1.last
= f.submit "Post"

View file

@ -70,7 +70,7 @@ describe Group do
it 'should add post to group via post method' do
group = @user.group(:name => 'losers', :people => [@friend])
status_message = @user.post( :status_message, :message => "hey", :group_id => group.id )
status_message = @user.post( :status_message, :message => "hey", :group_ids => [group.id] )
group.reload
group.posts.include?(status_message).should be true