我有两个模型(Document
& DocumentType
)。使用carrierwave,我想根据它的DocumentType(它包含一系列可接受的文件扩展名)动态限制Document上允许的文件扩展名。问题是它extension_white_list
似乎在 DocumentType 与 Document 关联之前被调用。想法,想法?
def create
@document = Document.new document_params
end
我有两个模型(Document
& DocumentType
)。使用carrierwave,我想根据它的DocumentType(它包含一系列可接受的文件扩展名)动态限制Document上允许的文件扩展名。问题是它extension_white_list
似乎在 DocumentType 与 Document 关联之前被调用。想法,想法?
def create
@document = Document.new document_params
end
在您的上传器中,您可以做任何您需要的事情,类、实例方法或固定数据。
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