Возраст логический в представлении new.erb и контроллере с Ruby, PG Sql и Sinatra - PullRequest
0 голосов
/ 21 марта 2020

Я работаю с Sinatra, и моя цель - заставить пользователя моего приложения указать возраст своих клиентов в форме «создать клиента» и принять их в качестве клиентов, если age >= 21. @dob является переменной экземпляра объекта customer и представляет собой date.

Моя попытка на контроллере:

post '/customer' do
  @customer = Customer.new( params )
    if @dob.nil?
            return "No date of Birth"
     else 
            age = Date.today.year - @dob.year
                if age >= 21
                       @customer.save
                       erb( :"guests/create" ) 
                else
                       erb( :"guests/not_created" )
                end        
    end
end

Форма в файле new.erb :

<div class="form-el">
     <label for="dob">DOB:</label>
     <input type="date" name="dob" id="dob"/>
</div>

Ошибка здесь #<NoMethodError: undefined method 'year' for nil:NilClass>, но при изменении метода year возникают другие ошибки. Большое спасибо за вашу помощь

...