Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Carrierwave动态扩展\u白名单_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails Carrierwave动态扩展\u白名单

Ruby on rails Carrierwave动态扩展\u白名单,ruby-on-rails,ruby,Ruby On Rails,Ruby,我有两种型号(Document&DocumentType)。使用carrierwave,我希望根据文档的DocumentType(它包含一个可接受的文件扩展名数组)动态限制文档上允许的文件扩展名。问题是,扩展白名单似乎在DocumentType与文档关联之前被调用。想法、想法 def create @document = Document.new document_params end 在上载程序中,您可以执行任何需要的操作,如类、实例方法或固定数据 def extension_white

我有两种型号(
Document
&
DocumentType
)。使用carrierwave,我希望根据文档的DocumentType(它包含一个可接受的文件扩展名数组)动态限制文档上允许的文件扩展名。问题是,
扩展白名单
似乎在DocumentType与文档关联之前被调用。想法、想法

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

谢谢你,本杰明。这救了我一天。我想知道这个答案是否被接受,而且还没有人投赞成票<代码>Rails分配参数的方式是主要原因。再次感谢。