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分配参数的方式是主要原因。再次感谢。