我真的很喜歡讓我的政策負責確保所有變量都被填充和有效的想法,所以我們不會得到任何nil:nilClass錯誤或類似錯誤。檢查變量存在與評論者
我認爲這將是很好的,以確保用戶已經上傳的文件使用策略:
這裏是我創建行動:
def create
file = params[:file][:uploaded_file]
authorize file
# removed for brevity
end
而這裏的政策:
class AssetPolicy < ApplicationPolicy
def initialize(current_user, record)
@current_user = current_user
@record = record
end
def create?
@record != nil
end
end
但是,我收到以下意外錯誤:
當文件爲零時:
Pundit::NotDefinedError in Admin::Browser::AssetsController#create
unable to find policy NilClassPolicy for
當文件不是零:
Pundit::NotDefinedError in Admin::Browser::AssetsController#create
unable to find policy ArrayPolicy for [#<ActionDispatch::Http::UploadedFile:0x000000050a2af8]
所以我應該怎麼檢查的東西與權威人士的存在呢?