大家好我是新來導軌出於某種原因,我不斷收到一個錯誤Rails的未定義的方法'用戶」的零:NilClass
undefined method 'user' for nil:NilClass
。
我在底部粘貼了一個錯誤圖像,我發佈了下面的代碼。
# registeredapps_controller.rb
class RegisteredappsController < ApplicationController
def create
@registeredapp = Registeredapp.new(registeredapp_params)
@registeredapp.user = current_user
unless RegisteredappPolicy.new(current_user, @registeredapp).create?
flash[:alert] = "not authorized"
redirect_to user_registeredapps_path(current_user.id)
end
if @registeredapp.save
flash[:notice] = "You successfully registered your app."
redirect_to user_registeredapp_path(current_user.id, @registeredapp.id)
else
flash.now[:alert] = "There was an error registering your app. Please try again."
render :new
end
end
策略(使用權威人士GEM)
# registeredapp_policy.rb
class RegisteredappPolicy
def initialize(user, registeredapp)
@registeredapp = registeredapp
@user = user
end
def create?
if @user.present?
@user = @registerdapp.user
else
false
end
end
這裏是我的模型
# models/user.rb
class User < ApplicationRecord
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable, :confirmable
def avatar_url(size)
gravatar_id = Digest::MD5::hexdigest(self.email).downcase
"http://gravatar.com/avatar/#{gravatar_id}.png?s=#{size}"
end
has_many :registeredapps
end
# models/registeredapp.rb
你能否提供你的rails版本? –
這是一個拼寫問題......檢查你的實例變量(詳見我的答案) –
[未定義的方法\'用戶'爲nil:NilClass](http:// stackoverflow。com/questions/15383294/undefined-method-user-for-nilnilclass) –