我試圖通過Devise實現邪惡的寶石,因爲我希望用戶通過不同的步驟來完成他們的配置文件。我是一個全新的新手,所以如果你能給我一個關於可能是什麼問題的建議,我將不勝感激。未定義的方法`屬性'爲零:NilClass - 邪惡/設計寶石
我得到的錯誤是這一個,它顯示當我嘗試從「個人」繼續「樣式」的一步。我想這是與保存數據的問題:
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