Ich versuche, Wicked Juwel mit Devise zu implementieren, wie ich Benutzer durch verschiedene Schritte gehen, um ihre Profile zu vervollständigen. Ich bin ein kompletter Neuling, also würde ich mich freuen, wenn Sie mir einen Vorschlag geben könnten, was das Problem sein könnte.undefined Methode `Attribute 'für Nil: NilClass - Wicked/Devise Gems
Der Fehler, den ich bekomme, ist dieser und es zeigt, wenn ich versuche, von "Personal" zu "Style" Schritt fortzufahren. Ich denke, es ist ein Problem mit den Daten zu speichern:
NoMethodError in OnboardingController#update
undefined method `attributes' for nil:NilClass
**@user.attributes(user_params)**
Das ist meine Anmeldung und Onboarding-Controller:
class RegistrationsController < Devise::RegistrationsController
protected
def after_sign_up_path_for(resource)
'/onboarding/personal'
end
def after_update_path_for(resource)
registration_steps_path
end
def new
super
end
def create
super
end
def update
super
end
def update_resource(resource, params)
if resource.encrypted_password.blank? # || params[:password].blank?
resource.email = params[:email] if params[:email]
if !params[:password].blank? && params[:password] == params[:password_confirmation]
logger.info "Updating password"
resource.password = params[:password]
resource.save
end
if resource.valid?
resource.update_without_password(params)
end
else
resource.update_with_password(params)
end
end
end
und
class OnboardingController < ApplicationController
include Wicked::Wizard
steps :personal, :stylefirst
def show
@user = current_user
render_wizard
end
def update
@user = current_user
@user.attributes(user_params)
render_wizard @user
end
end
Der Fehler besagt, dass current_user in der Update-Aktion für den Onboarding-Controller nicht vorhanden ist. –
Hm, aber es existiert, wie Sie sehen können ... –
Nein, wir können nicht sehen. Es könnte sein, dass der Benutzer einfach nicht eingeloggt ist. – Leito