Custom Error validation

I have a couple of concerns here. Should I only use model methods to return objects and then save those objects in the controller? or is it okay to save within a model method like below? The other thing is I have created a javascript variable to flag if a time gets selected from a custom javascript pull down menu and I would like to be able to check that a time is selected and then display the error using rjs. Below is what I have so far, it does not totally work, but I wanted to get some input before I went any further.

def create     case params[:event][:kind]     when "appointment"       event = Appointment.create_and_save(blah)     when "personal"       event = Personal.create_and_save(blah)     end   end

class Appointment < Event   def self.create_and_save(blah)     if time_selected == 'false'       appointment = Appointment.new       appointment.errors.add('start_int', "You must select a time.")     else     event_info = { blah }     appointment = Appointment.new(event_info)     end   end end

#now back in the controller i would like to use rjs to render this error #something like:     respond_to do |format|       if event.save!         ...       else         format.js do           render :update do |page|             page.replace_html 'error', @user.return_validation_error ('start_int') if @user.errors['start_int']             #page << "$('email_help').className = 'signup_error';" if @user.errors['email']           end         end       end     end