Я пытаюсь реализовать Wicked gem с Devise, так как хочу, чтобы пользователи проходили различные шаги, чтобы завершить свои профили. Я полный новичок, поэтому я был бы признателен, если бы вы могли дать мне предложение о том, что может быть проблемой.неопределенный метод `attributes 'для nil: NilClass - Wicked/Devise gems
Ошибка, которую я получаю, эта, и она показывает, когда я пытаюсь перейти от «Личный» к шагу «Стиль». Я предполагаю, что это проблема с сохранением данных:
NoMethodError in OnboardingController#update
undefined method `attributes' for nil:NilClass
**@user.attributes(user_params)**
Это мои регистрационные и адаптационный контроллеры:
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
и
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
Ошибка говорит вам, что current_user не существует в действии обновления для контроллера на борту. –
Хм, но он существует, как вы можете видеть ... –
Нет, мы не можем видеть. Может быть, пользователь просто не вошел в систему. – Leito