载波 - 未定义的方法"存在吗?"对于 nil:NilClass



检查用户是否在控制器中选择了要上传的文件的最佳方法是什么?目前我有

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

但这会返回"未定义的方法"是否存在对于零:NilClass’

在控制台中,"是否存在?"在返回true的地方工作,但在应该返回false的时候抛出错误。在查询"是否存在"之前,我尝试过"object.save"但它并没有修复它。

从导轨:

params散列中的对象是IO子类的实例。根据上传文件的大小,它实际上可能是StringIO或由临时文件支持的file实例。在这两种情况下,对象都将具有original_filename属性和content_type属性,前者包含文件在用户计算机上的名称,后者包含上载文件的MIME类型。

如果用户没有选择文件,则相应的参数将为空字符串。

因此,您可以从检查参数是否为空字符串开始。

希望这能有所帮助。

相关内容

最新更新