Ich habe LDAP-Authentifizierung durch Devise, und bevor ich einen Benutzer in der Datenbank (mit den zusätzlichen Informationen aufgrund von Geschäftsregeln für den Benutzer) erstellen möchte, möchte ich einige andere Informationen auf den Servern des Unternehmens sammeln.Schienen 4 - Wie wird eine Validierungsaktion auf dem Controller richtig eingerichtet?
Ich habe eine user_query
Aktion, so dass ich die folgenden modal anzeigen kann:
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h3>Find User by Email</h3>
</div>
<div class="modal-body">
<% flash.each do |name, msg| -%>
<%= content_tag :div, msg, class: name %>
<% end -%>
<%= form_tag('/users/new', method: :get, remote: true) do -%>
<%= text_field_tag 'user_email', nil, placeholder: 'Insert user email', class: 'form-control' %>
<%= submit_tag 'Get user information', remote: true, class: 'btn btn-default' %>
<% end -%>
</div>
</div>
</div>
Es Box hat einen Text, in dem der Benutzer die E-Mail gibt den Server abzufragen und überprüfen, ob der Benutzer vorhanden ist, wenn es funktioniert , Umleiten an die new
Benutzeraktion, Senden der gefundenen Benutzerinformationen, sonst möchte ich, dass es einen Fehler anzeigt, dass die informierte Benutzer-E-Mail nicht gefunden werden konnte.
Die Aktion, die ich diese Validierung tun erstellt, nachdem der Benutzer die email
informiert hat, ist die authenticate_user_email
wie folgt:
def authenticate_user_email
respond_to do |format|
if authenticated_user = Devise::LDAP::Adapter.get_ldap_entry(params[:user_email])
format.html { redirect_to action: :new, authenticated_user: authenticated_user }
else
format.json { render json: 'User email not found', status: :not_found }
end
end
end
Allerdings konnte ich dies nicht die authenticate_user_email
als after_action
der Einstellung an die Arbeit user_query
, noch weiß ich, ob dies der richtige Ansatz dafür ist, weshalb ich frage, was ist der richtige Weg, um diese Validierung einzurichten (unter Berücksichtigung, dass jede Aktion innerhalb eines Modals gerendert wird)?
Danke.
Haben Sie sah [ Active Record Validierungen] (http: //guides.rub yonrails.org/v4.2/active_record_validations.html)? – lurker
Ja, aber sind keine AR-Validierungen, um die Daten zu validieren, bevor sie in der Datenbank gespeichert werden? In diesem Fall würde es nicht wirklich Daten speichern, eher wie ein Schritt, um zu bestätigen, dass der Benutzer in der Firma existiert, und es dann aktivieren, um zusätzliche Informationen auf der Anwendungsseite zu erhalten (oder nicht). –