Ich benutze die Devise gem und habe damit ein einfaches User-Modell erstellt. Danach fügte ich ein Feld "phone_number" hinzu und ich möchte in der Lage sein, dieses phone_number Feld in einem anderen Controller zu bearbeiten. Die Art, wie ich festgelegt haben, dass Controllers Form, um die Telefonnummer zu bearbeiten ist wie folgt:rails 5 param fehlt oder der Wert ist leer: phone_number
Dashboard-Controller
class DashboardController < ApplicationController
# So that we don't have to authenticate users for only the home action in this controller
skip_before_action :authenticate_user!, :only => [:home]
def home
current_user.update(user_params)
respond_to do |format|
if current_user.update_attributes(user_params)
format.html { redirect_to current_user, notice: 'User was successfully created.' }
else
format.html { redirect_to current_user, notice: 'Errors.' }
end
end
end
private
def user_params
params.require(:user).permit(:phone_number)
end
end
Und meine Form ist:
<%= form_for(current_user) do |f| %>
<%= devise_error_messages! %>
<div class="field">
<%= f.label :phone_number %><br />
<%= f.text_field :phone_number, autofocus: true %>
</div>
<% end %>
Gerade jetzt, dieses Haus Methode Dieser Controller wird für meine Root-Seite geroutet (sobald Sie also localhost: 3000 drücken, wird auf diesen Home-Controller zugegriffen.)
Leider ist die Seite nicht einmal geladen und der Fehler auf Last Ich erhalte:
Action :: ParameterMissing in DashboardController # Hause
param fehlt oder der Wert leer ist: Benutzer
Wie ich ein Formular einrichten kann in meinem Dashboard-Controller, damit der Benutzer current_user sein Telefonnummernfeld bearbeiten kann? Vielen Dank im Voraus
Bitte die Protokolle veröffentlichen. – Pavan