Ich bin neu bei RoR und versuche ein Anmeldeformular zu erstellen. Wenn ich auf "Mein Konto erstellen" klicke, werden die Daten nicht in der Datenbank gespeichert. Ich habe Ressourcen hinzugefügt: Benutzer zu meiner Routes-Datei. Gibt es noch etwas, das mir fehlt?Formulardaten werden nicht in der Datenbank gespeichert
Dies ist meiner Ansicht nach (signup.html.erb)
Anmelden
<%= form_for @user, :url => { :action => "create" } do |f| %>
<%= f.label :emp_id,"Employee ID" %><br>
<%= f.text_field :emp_id, class: 'form-control' %><br><br>
<%= f.label :password, "Password" %><br>
<%= f.password_field :password, class: 'form-control' %><br><br>
<%= f.label :password_confirmation, "Password Confirmation" %><br>
<%= f.password_field :password_confirmation, class: 'form-control' %><br><br>
<%= f.submit "Create my account", class: "btn btn-primary" %>
<% end %>
Das ist mein Controller
class UsersController < ApplicationController
def new
@user = User.new
end
def signup
@user = User.new
end
def show
@user = User.find(params[:id])
end
def create
@user = User.new(user_params)
if @user.save
render 'login'
else
render 'signup'
end
end
def user_params
params.require(:user).permit(:emp_id, :password)
end
end
Sie werden auch – Iceman
Darstellungsfehler in der Ansichtsseite zu ermöglichen, haben 'password_confirmation', dies wird Ihnen eine Vorstellung davon, Was fehlt in der Form. '@ user.errors' – TarunJadhwani
Rails enthält standardmäßig ein kleines Juwel namens' byebug'. Wenn Sie die Zeile 'byebug' direkt nach' @user = User.new (user_params) 'hinzufügen, werden Rails in einen Debugger gehen. Laden Sie die Seite in Ihrem Browser neu (es bleibt stehen) und wechseln Sie dann zu der Shell, in der Sie den Server betreiben. Dadurch erhalten Sie eine interaktive Shell, in der Sie beispielsweise '@ user.valid?' Und '@ user.errors' überprüfen und sich die Parameter anschauen können. – max