Я пытаюсь разрешить пользователю заполнять форму с задержкой между каждым пользователем. Задержка установлена равной 100 между последним пользователем, зарегистрированным в моей базе данных, и новым
Вот что я делаю в своей контроллер:
class EmailsController < ApplicationController
def index
redirect_to root_path
end
def new
@email = Email.new
end
def create
if Time.now - Email.last.created_at < 100
respond_to do |format|
format.html{render :new, notice: "Wait !"}
end
else
respond_to do |format|
@email = Email.create(email_params)
if@email.persisted?
format.html {redirect_to invoice_index_path, notice: 'Email validated '}
else
format.html{render :new}
end
end
end
end
личный
def email_params params.require (: электронная почта) .permit (: электронная почта,: id_user) end end
Мой взгляд:
<div class="container">
<% if flash[:notice].present?%>
<center><p id="notice" class="alert alert-success"><%= flash[:notice] %></p></center>
<%end%>
<center><h1>Nouvelle Connection </h1></center>
<%= form_with model: @email, local: true do |form|%>
<% if @email.errors.any? %>
<div id="error explanation" class="alert alert-danger">
<p>Erreur(s) : </p>
<ul>
<% @email.errors.full_messages.each do |message|%>
<li><%=message%></li>
<% end %>
</ul>
</div>
<% end %>
<div class="form-group">
<%= label_tag :email %> :
<%= form.email_field :email, placeholder: "Insérez votre email", class: "form-control" %>
</div>
<div class="form-group">
<%= form.submit class: "btn btn-primary btn-lg btn-block", value: "Se connecter" %>
</div>
<%end%>
</div>
Когда я заполняю форму, ничего не происходит, просто URL-адрес меняется с http://localhost:3000/
на http://localhost:3000/emails
, и когда я снова нажимаю на Validate, он переходит на http://localhost:3000/emails/53
с ошибкой The action 'update' could not be found for EmailsController
, но я думаю, у меня есть эта ошибка, потому что у меня нет обновления / редактирования в моем контроллере.
Вы знаете, как это исправить, чтобы позволить мне задержку между каждым пользователем?
Редактировать: у меня теперь ошибка undefined method errors for nil:NilClass
в моем представлении в строке <% if @email.errors.any? %>
. Я понимаю, что это потому, что мой @email равен nil, но я пытался интегрировать это в моем представлении:
<% if @email.nil?%>
<%= Wait for the moment %>
<%end%>
Также пытался: <% if @email&.errors&.any? %>
почему так, я возвращаюсь к URL: http://localhost:3000/emails
Но все еще есть та же ошибка, вы знаете, как это исправить?