1

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

def create
  @document = Document.new document_params
end
4

1 回答 1

3

在您的上传器中,您可以做任何您需要的事情,类、实例方法或固定数据。

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
于 2013-07-15T18:51:46.430 回答