Hello,
Well, right now I have the following models. I have three tables: users, events and attendances. Attendances is a join table that contains the event_id, user_id and rsvp (boolean representing if the user is going or not to the event). Just after creating a new event I save the event object on the events table and continue saving the user who created the event on the attendances table. Below I'll show the code that does this. I just don't feel it is the right way to do it, so your opinion is of great value on how it can be improved. Thanks!
class Event < ActiveRecord::Base
has_many :attendances has_many :users, :through => :attendances
end
class User < ActiveRecord::Base
has_many :attendances has_many :events, :through => :attendances
end
class Attendance < ActiveRecord::Base
belongs_to :event belongs_to :user
end
def create @event = Event.new(params[:event]) @attendance = Attendance.new(:user_id => current_user.id) respond_to do |format| if @event.save @attendance.event_id = @event.id @attendance.save flash[:notice] = 'Event was successfully created.' format.html { redirect_to invite_more_friends_neighborhood_event_path(@event.user.neighborhood,@event) } format.xml { render :xml => @event, :status => :created, :location => @event } if logged_in? && admin? else # Added to show again all the event_categories on the form flash[:error] = 'Sorry, we found some errors.' @event_categories = EventCategory.find(:all) @friends = current_user.mutual_friends format.html { render :action => "new" } format.xml { render :xml => @event.errors, :status => :unprocessable_entity } if logged_in? && admin? end end end