2016-04-26 44 views
0

我正在开发一个用户(模型“用户”)可以上载文档(模型“Document”)的Rails项目。我正在使用CarrierWave上传文件。用户可以拥有不同类型的帐户(免费或高级)。如果用户有一个免费账户,我只想让他们上传某些类型的文件。根据另一个模型的属性对一个模型使用不同的CarrierWave上传器 - RAILS

CarrierWave Uploader文件不知道current_user是什么,所以我不能这样检查它。我理解在Document模型中使用current_user是不好的做法。

对我来说,处理这个问题的最佳方法是什么?

感谢

+0

仅用于该控制器。 – 7urkm3n

+0

文档模型与用户模型是否有任何关系? – Sebin

回答

0
def extension_white_list 
    return %w(jpg jpeg gif png pdf docx) if model.user.account_type?(:free) 
    %w(jpg jpeg gif png pdf docx doc xlsx xls odt ods csv txt) 
end 

您可以通过可变model访问内上传的Document模型。如果Document模型通过关系与User模型连接,则可以执行上述的操作。请注意,您必须在User模型中定义account_type方法。

相关问题