Carrierwave动态extension_white_list

时间:2013-07-15 18:48:12

标签: ruby-on-rails ruby

我有两个模型(Document& DocumentType)。使用carrierwave我想基于它的DocumentType(包含可接受的文件扩展名数组)动态限制Document上允许的文件扩展名。问题是在DocumentType与Document关联之前似乎调用extension_white_list。想法,想法?

def create
  @document = Document.new document_params
end

1 个答案:

答案 0 :(得分:3)

在您的上传器中,您可以执行任何操作,类,实例方法或固定数据。

def extension_white_list
  # Document.some_class_method
  # model.some_instance_method
  # fixed: %w(jpg jpeg gif png)
end

问题可能源于Rails指定params的方式:你无法控制订单。

在这种情况下,分割线条以获得所需的顺序:

@document = Document.new document_params_without_file
@document.assign_attributes document_file_params
#or a mere @document.file_accessor = document_file_params