Hi, I have a very beginners understanding of rails and ruby and I keep getting stuck. Some previous posts have helped me a great deal but I now have a different issue and so I thought I should start another post with a different topic.
I am making an appointment booking app and I have a very basic design. I have created an appointments scaffold with name:string phone:string email:string numpeople:integer date:date timeslot:string. On the view for creating a new appointment I have stated that appointment 1 is 9-11am, appointment 2 is 12-2pm, appointment 3 is 3-5pm and appointment 4 is 5 - 7pm. The user is asked to enter 1,2,3 or 4.
When the user clicks on "make appointment" I'm trying to interrupt the appointments controller (create method) so that I can check if the date && timeslot are nil. if that is the case, the system should continue on to create the appointment, if not then I want to redirect to somewhere else. I have created a method called isValid? in the model (See below)
I think the method is correct as the system is getting as far as the redirect. The problem is, it keeps redirecting to the page I told it to go to if it's not saved(the homepage or root_path). (Also the appointments are not saving).
So, there now seems to be an issue with saving the appointment data to the database.
If anyone could give me some pointers, I would be so, so grateful!
CODE:
appointments Model: class Appointment < ActiveRecord::Base
def isValid? taken= Appointment.where("date = ? && timeslot = ?", date,timeslot) Appointment.save unless taken end end
appointments controller:
def create valid = @appointment = Appointment.new(appointment_params).isValid?
respond_to do |format| if valid format.html { redirect_to new_appointment_path, notice: 'Appointment was successfully created.' } format.json { render :show, status: :created, location: @appointment } else format.html { redirect_to root_path, notice: 'That appointment is not available, please choose again' } # this redirect works with no notice format.js { render json: @appointment.errors, status: :unprocessable_entity } end end end