2014-11-04 53 views
1

檢查用戶是否選擇要在控制器中上傳的文件的最佳方法是什麼?目前我有 -Carrierwave - 未定義的方法'存在嗎?' for nil:NilClass

def create 
if @object.foo.file.exists? 
    do something to object 
end 

if @object.save etc. 

但是,這返回'未定義的方法'存在?' for nil:NilClass'

在控制檯中,'exists?'在返回true的情況下工作,但在返回false時拋出錯誤。在查詢「存在之前,我試過'object.save'?但它不能解決它。

回答

1

From the rail guides:

在params哈希表的目的是IO的子類的實例。根據上傳文件的大小,它實際上可能是一個StringIO或由臨時文件支持的文件實例。在這兩種情況下,對象都將具有包含文件在用戶計算機上的名稱的original_filename屬性和包含上載文件的MIME類型的content_type屬性。

如果用戶沒有選擇文件,相應的參數將是一個空字符串。

所以你可以先檢查你的參數是否是一個空字符串。

希望這會有所幫助。

+0

是的,它肯定指向我在正確的方向:)謝謝 – RADan 2014-11-04 11:04:47

相關問題