我有两个模型(Document
& DocumentType
)。使用 carrierwave 我想根据它的 DocumentType(包含一系列可接受的文件扩展名)动态限制 Document 上允许的文件扩展名。问题是 extension_white_list
似乎在 DocumentType 与文档相关联之前被调用。想法、想法?
def create
@document = Document.new document_params
end
最佳答案
在您的 uploader 中,您可以做任何您需要的事情,类、实例方法或固定数据。
def extension_white_list
# Document.some_class_method
# model.some_instance_method
# fixed: %w(jpg jpeg gif png)
end
问题可能源于 Rails 分配参数的方式:您无法控制顺序。
在这种情况下,拆分行以获得您想要的顺序:
@document = Document.new document_params_without_file
@document.assign_attributes document_file_params
#or a mere @document.file_accessor = document_file_params
关于ruby-on-rails - Carrierwave动态扩展_white_list,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17661639/