2014-06-22 4 views
0

J'ai un problème car date_time ne pas aller à ma base de données Quelqu'un peut-il m'aider avec cela? Je vais de New51 à Form51 et utilise la méthode create51. Mais l'application crée toujours la date_time vide déposée dans db. Pourquoi?Ruby Ajout à DB ne fonctionne pas

Apppointment_controller:

class AppointmentsController < ApplicationController 
    before_filter :load_appointment, only: [:show, :update, :edit, :destroy] 
    before_filter :load_wizard, only: [:new, :edit, :create] 



    def searchd 
    end 

    def move 
    end 

    def doctors_list 
    @doctors = Doctor.where("imie_lekarza like ? or nazwisko_lekarza LIKE ? or specjalizacja LIKE ?", "%#{params[:search]}%", "%#{params[:search]}%", "%#{params[:search]}%") 
    end 

    def doctor_appointments 
    @doctor = Doctor.find(params[:id]) 
    @appointments = @doctor.appointments 
    end 

    def change_appointment 
    @appointment = Appointment.find(params[:id]) 
    end 

    def change_doctor_and_appointment 
    @doctors = Doctor.all 
    @appointment = Appointment.find(params[:id]) 
    end 

    def success 
    @notice = flash[:notice] 
    end 

    def searchdate 
    d = params[:date] 
    data = Date.new(d["(1i)"].to_i, d["(2i)"].to_i, d["(3i)"].to_i) 
    @appointments = Appointment.scoped 
    @appointments = @appointments.where(:data_godzina_wizyty => data.beginning_of_day..data.end_of_day) 
    end 


    def search_not 
    end 

    def search_result_not 

    #pacjent 
    @patients = Patient.scoped 
    @patients = @patients.where(pesel: params[:pesel]) 

    d = params[:date] 
    if d["(1i)"] != "" and d["(2i)"]. != "" and d["(3i)"] != "" 
     data = Date.new(d["(1i)"].to_i, d["(2i)"].to_i, d["(3i)"].to_i) 
     @appointments = @patients.first.appointments.where(:data_godzina_wizyty => data.beginning_of_day..data.end_of_day) 
    else 
     @appointments = @patients.first.appointments 
    end 

    end 

    def add_or_edit_not 
    session['last_search_not'] = request.env["HTTP_REFERER"] 
    @appointment = Appointment.find(params[:id]) 
    @patient = Patient.find(@appointment.patient_id) 
    if @appointment.doctor_id != nil 
     @doctor = Doctor.find(@appointment.doctor_id) 
    end 
    if @appointment.refferal_id != nil 
     @refferal = Refferal.find(@appointment.refferal_id) 
    end 
    end 

    def update_not 
    @appointment = Appointment.find(params[:id]) 
    @appointment.notatka = params[:notatka] 
    if @appointment.save 
     redirect_to session[:last_search_not], notice: 'Notatka zostala zapisana.' 
    else 
     redirect_to :back, notice: 'Niestety wystapil blad. Prosze sprubowac pozniej' 
    end 
    end 


    def search 
    end 


    def new51 
    @appointment = Appointment.new 

    respond_to do |format| 
     format.html # new51.html.erb 
     format.json { render json: @appointment } 
    end 
    end 

    def create51 
    @appointment = Appointment.new(params[:appointment]) 

    respond_to do |format| 
     if @appointment.save 
     format.html { redirect_to @appointment, notice: 'Wizyta zostala pomyslnie utworzona.' } 
     format.json { render json: @appointment, status: :created, location: @appointment } 
     else 
     format.html { render action: "new51" } 
     format.json { render json: @appointment.errors, status: :unprocessable_entity } 
     end 
    end 
    end 

    def search_result 
    d = params[:date] 
    data = Date.new(d["(1i)"].to_i, d["(2i)"].to_i, d["(3i)"].to_i) 
    #szukanie pacjenta 
    @patients = Patient.scoped 
    @patients = @patients.where(pesel: params[:pesel]) 

    if params[:imie] != "" 
     @patients = @patients.where(imie: params[:imie]) 
    end 

    if params[:nazwisko] != "" 
     @patients = @patients.where(nazwisko: params[:nazwisko]) 
    end 
    #szukanie doctora 
    opcja = 0 
    @doctors = Doctor.scoped 
    if params[:imie_lekarza] != "" 
     @doctors = @doctors.where(imie_lekarza: params[:imie_lekarza]) 
     opcja = 1 
    end 

    if params[:nazwisko_lekarza] != "" 
     @doctors = @doctors.where(nazwisko_lekarza: params[:nazwisko_lekarza]) 
     opcja = 1 
    end 
    #zlaczenie 
    @patient_appo = @patients.first.appointments.where(:data_godzina_wizyty => data.beginning_of_day..data.end_of_day, potwierdzona: false) 
    if opcja == 1 
     @doctors_appo = @doctors.first.appointments.where(:data_godzina_wizyty => data.beginning_of_day..data.end_of_day, potwierdzona: false) 
     @appointments = @patient_appo & @doctors_appo 
    else 
     @appointments = @patient_appo 
    end 
    end 

    def to_confirm 
    session['last_search'] = request.env["HTTP_REFERER"] 
    @appointment = Appointment.find(params[:id]) 
    @patient = Patient.find(@appointment.patient_id) 
    if @appointment.doctor_id != nil 
     @doctor = Doctor.find(@appointment.doctor_id) 
    end 
    if @appointment.refferal_id != nil 
     @refferal = Refferal.find(@appointment.refferal_id) 
    end 
    end 

    def confirm 
    @appointment = Appointment.find(params[:id]) 
    @appointment.potwierdzona = true 
    if @appointment.save 
     #redirect_to :back, notice: 'Rejestracja zostala pomyslnie potwierdzona.' 
     redirect_to session[:last_search], notice: 'Rejestracja zostala pomyslnie potwierdzona.' 
    else 
     redirect_to :back, notice: 'Niestety wystapil blad. Prosze sprubowac pozniej' 
    end 
    end 

    def index 
    @appointments = Appointment.all 
    end 

    def show 
    end 

    def new 
    @appointment = @wizard.object 
    @clinics = Clinic.all 
    @doctors = Doctor.all 
    end 

    public 
    def findDoctorViaClinic(clinic) 
    return((Clinic.find( clinic )).doctors.uniq) 
    end 
    helper_method :findDoctorViaClinic 

    def findScheduleViaDoctor(d) 
    s = Schedule.includes(:doctors_workplace).where(doctors_workplace_id: (DoctorsWorkplace.includes(:doctor).where(doctor_id: d))).where(taken: 0) 
    return s 
    end 
    helper_method :findScheduleViaDoctor 


    def edit 
    end 

    def create 
    @appointment = @wizard.object 
    if @wizard.save 
    s = (Schedule.find(@appointment.schedule.id)) 
    s.taken = true 
    s.save 
     redirect_to @appointment, notice: "Appointment saved!" 
    else 
     render :new 
    end 
    end 

    def update 
# if @wizard.save 
#  redirect_to @appointment, notice: 'Appointment was successfully updated.' 
# else 
#  render action: 'edit' 
# end 

    @appointment = Appointment.find(params[:id]) 
    @old_appointment = @appointment.dup 
    respond_to do |format| 
     if @appointment.update_attributes(params[:appointment]) 
     DefaultMailer.move_appointment(@appointment, @old_appointment).deliver 
     format.html { redirect_to appointments_success_path, notice: 'Pomyslnie zmieniono termin.' } 
     format.json { head :no_content } 
     else 
     format.html { render action: "edit" } 
     format.json { render json: @appointment.errors, status: :unprocessable_entity } 
     end 
    end 

    end 

    def destroy 
    @appointment.destroy 
    redirect_to appointments_url 
    end 

private 

    def load_appointment 
    @appointment = Appointment.find(params[:id]) 
    end 

    def load_wizard 
    @wizard = ModelWizard.new(@appointment || Appointment, session, params) 
    if self.action_name.in? %w[new edit] 
     @wizard.start 
    elsif self.action_name.in? %w[create update] 
     @wizard.process 
    end 
    end 
end 

_form51.html.erb:

<%= form_for @appointment, :url => url_for(:action => "create51") do |f| %> 
    <% if @appointment.errors.any? %> 
    <div id="error_explanation"> 
     <h2><%= pluralize(@appointment.errors.count, "error") %> prohibited this appointment from being saved:</h2> 

     <ul> 
     <% @appointment.errors.full_messages.each do |msg| %> 
     <li><%= msg %></li> 
     <% end %> 
     </ul> 
    </div> 
    <% end %> 

    <div class="field"> 
    <%= f.label :data_godzina_wizyty %><br /> 
    <%= 
    options = { start_year: 2.year.from_now.year, 
       end_year: 2013, 
       include_blank: true, 
       default: nil } 
    f.datetime_select :data_godzina_wizyty, options 
    %> 
    <!--<input type="text" data-behaviour='datepicker' :data_wizyty > --> 
    </div> 
    <div class="field"> 
    <%= f.hidden_field :doctor_id, :value => Doctor.find(session[:current_doctor_id2]).id %> 
    </div> 
    <div class="field"> 
    <%= f.hidden_field :patient_id, :value => Patient.find(session[:current_patient_id]).id %> 
    </div> 
    <div class="actions"> 
    <%= submit_tag "Utworz wizyte" %> 
    </div> 
<% end %> 

new51.html.erb:

<div id="container"> 
<center> 
<h1>Nowa wizyta:</h1> 
<p>Sprawdz poprawnosc ponizszych danych a nastepnie uzupelnij formularz.</p> 

<h3>Dane lekarza:</h3> 
<p> 
    <strong>Imię lekarza:</strong> 
    <%= Doctor.find(session[:current_doctor_id2]).imie_lekarza %> 
</p> 

<p> 
    <strong>Nazwisko lekarza:</strong> 
    <%= Doctor.find(session[:current_doctor_id2]).nazwisko_lekarza %> 
</p> 
<p> 
    <strong>Specjalizacja lekarza:</strong> 
    <%= Doctor.find(session[:current_doctor_id2]).specjalizacja %> 
</p> 
<h3>Dane pacjenta:</h3> 
<p> 
    <strong>Imie:</strong> 
    <%= Patient.find(session[:current_patient_id]).imie %> 
</p> 
<p> 
    <strong>Nazwisko:</strong> 
    <%= Patient.find(session[:current_patient_id]).nazwisko %> 
</p> 
<p> 
    <strong>Pesel:</strong> 
    <%= Patient.find(session[:current_patient_id]).pesel %> 
</p> 
<%= render "form51", locals: { appointment: @appointment } %> 

<%= link_to 'Wybierz innego lekarza', index51_doctors_path %> 
</br> 
</center> 
</div> 
+0

pouvez-vous poster vos paramètres de forme? – Mandeep

+0

J'ai ajouté à question tout ce qui est utilisé, les paramètres sont inclus dans le modèle – smiaro

+0

lorsque vous soumettez votre à partir de quels paramètres sont soumis à votre action? et l'enregistrement est-il sauvegardé dans votre base de données avec des sauvegardes nulles? – Mandeep

Répondre

1

Selon les commentaires ci-dessus le problème est que vous avez utilisé

@appointment = Appointment.new(params[:patient]) 

Vous INITIALISATION votre rendez-vousavec params [: patients] mais vos params à venir de la forme sont plus comme "appointment"=>{} si au contraire, vous devriez faire

@appointment = Appointment.new(params[:appointment]) 

Cela initialise votre rendez-vous avec le params provenant de votre formulaire.

+0

Il y avait aussi date_time, je devais utiliser la date et l'heure – smiaro

Questions connexes