Пользовательская проверка не выполняется при создании записи? - PullRequest
1 голос
/ 25 марта 2019

У меня проблема с моей пользовательской проверкой, не проверяющей поле даты в моей форме. Моя цель - найти в базе данных текущую дату для текущего пользователя в записях встреч. При переходе к созданию появляется флэш-уведомление.записи, однако, когда я изменяю дату на ту, которая уже занята, моя проверка не подхватывает это.Я, должно быть, настроил это неправильно, любая помощь будет принята с благодарностью!

class AppointmentsController < ApplicationController
  before_action :set_appointment, only: [:show, :edit, :update, 
:destroy]
  before_action :validate_schedule, :before => :create

  private
     def validate_schedule
        if Appointment.where(date: params[:date], user: current_user).exists?
            flash[:notice] = "You already have a date in this time"
        else
            flash[:notice] = "No conflicts"
     end
 end
end

_form.html.erb

<%= simple_form_for(@appointment) do |f| %>
  <%= f.error_notification %>
  <%= f.error_notification message: f.object.errors[:base].to_sentence if f.object.errors[:base].present? %>

  <!-- Show only patients to the current logged in users -->
  <div class="form-inputs">
    <%= f.input :notes %>
    <%= f.input :date %>
    <%= f.association :patient, label_method: :Full_Name, :collection => Patient.where(:user => current_user.id) %>
  </div>

  <div class="form-actions">
      <div style="display: flex; float: left;">
          <%= link_to 'Back', appointments_path, class: "btn btn-warning btn-m"%>
      </div>
      <div style="display: flex; float: right;">
          <%= f.button :submit , class: "btn btn-success btn-m"%>
      </div>
  </div>

<% end %>

1 Ответ

1 голос
/ 25 марта 2019

Это очень похоже на проверку модели:

class Appointment
  validates :date, uniqueness: { scope: :user }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...