Opinion on saving objects needed

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

Basically that look like perfect working code.

You could do it a touch more compact like:

@event = Event.new(params[:event])
      if @event.save
        if @event.attendances.create(:user_id => current_user.id)
...

Thanks for your answer Thorsten. I got into something like this too:

@event.attendances << current_user.attendances.build

What do you think about it?

Thanks for your answer Thorsten. I got into something like this too:

@event.attendances << current_user.attendances.build

What do you think about it?

Thanks for your answer Thorsten. I got into something like this too:

@event.attendances << current_user.attendances.build

What do you think about it?