Ich habe ein Anmeldeformular für meine Website erstellt und die folgenden Parameter in meine users_controller.rb-Datei aufgenommen, um die in die entsprechenden Felder eingegebenen Daten in meiner Datenbank zu speichern. Wenn ich versuche, mein erstelltes Anmeldeformular zu senden, sagt mir die Konsole aus irgendeinem Grund, dass Vorname und Nachname keine erlaubten Parameter sind. Der Fehler ist:Unerreichte Parameter in Rails
Unzulässige Parameter: Vorname, Nachname
Die Anmeldung ist erfolgreich, und die anderen Parameter werden in die Datenbank eingegeben ganz gut; Die Spalten firstname und lastname bleiben jedoch leer.
users_controller.rb
class UsersController < ApplicationController
def create
@user = User.new(user_params)
if @user.save
flash[:success] = "You signed up successfully"
flash[:color] = "valid"
redirect_to @user
else
flash[:notice] = "Form is invalid"
flash[:color] = "invalid"
render "new"
end
end
private
def user_params
params.require(:user).permit(:firstname, :lastname, :email, :password, :password_confirmation)
end
def show
@user = User.find(params[:id])
end
def new
end
end
new.html.erb
<%= form_for(:user, :url => {:controller => 'users', :action => 'create'}) do |f| %>
</br> <%= f.text_field :firstname, placeholder: 'First Name' %>
</br> <%= f.text_field :lastname, placeholder: 'Last Name' %>
</br> <%= f.text_field :email, placeholder: 'Email' %>
</br> <%= f.password_field :password, placeholder: 'Password' %>
</br> <%= f.password_field :password_confirmation, placeholder: 'Confirm Password' %>
<%= f.submit :Register %>
<% end %>
schema.rb
create_table "users", force: :cascade do |t|
t.string "firstname"
t.string "lastname"
t.string "email"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "password_digest"
t.string "password"
end
user.rb
class User < ActiveRecord::Base
has_secure_password
validates_length_of :password, :in => 6..20, :on => :create
validates :password_confirmation, presence: true, if: -> { new_record? || changes["password"] }
end
Eingehende Parameter (Konsole)
Processing by UsersController#create as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"1hHzXu2RZR3G3Zx4PoOeDu3DlU31V5abDH/UmNx+w9hs/gacgRYhFgpe6cm0d7cLaTtZdfROi3oUrw/m5EcTAQ==", "user"=>{"firstname"=>"Milhouse", "lastname"=>"Vanhoutten", "email"=>"[email protected]", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]"}, "commit"=>"Register"}
Unpermitted parameters: firstname, lastname,
(0.4ms) begin transaction
SQL (0.6ms) INSERT INTO "users" ("email", "password_digest", "created_at", "updated_at") VALUES (?, ?, ?, ?) [["email", "[email protected]"], ["password_digest", "$2a$10$T.iv9b3BjG.t1FJvT7YsVOZf0wNOD2QSFA9lP8RGOiE1h5AaDdB2q"], ["created_at", "2016-01-18 22:12:32.764948"], ["updated_at", "2016-01-18 22:12:32.764948"]]
(7.0ms) commit transaction
Redirected to /users/6
Completed 302 Found in 122ms (ActiveRecord: 8.7ms)
Können Sie Ihr Benutzerschema (aus der Datei schema.rb) anzeigen? – SteveTurczyn
Eingereichten Params-Hash anzeigen –
@SteveTurczyn Siehe oben hinzugefügtes Schema. – Brittany